ゴラン関数

11199 ワード

導入


シリーズの第8部では、我々はゴーンで機能を探求しています.我々は、Golangのような宣言、定義と呼び出しで機能のいくつかの基本に潜入します.我々は1つのショットでカバーするのはかなり大きなトピックとして機能のすべてのトピックを探索することはありません.それで、ベースからビルドして、我々は基本的な宣言から簡単な戻り声明まで始めます.

ゴランの関数


Golangの関数は、再利用可能なコードのブロックを構成する簡単な方法です.関数は、ロジックの一部を処理し、出力を返します.関数は読み取り可能でスケーラブルなコードを書くことができます.コードを一度書く必要があります.

関数の宣言


私たちは既に機能を定義していますhello-world アプリケーション.The main 関数はGolangで定義できる最も基本的な関数です.ダイビングは深いが、しかし、それは完全なプログラムのエントリポイントとして動作する用語の単純な場合は、メインが複雑です.
package main

func main() {

}
我々はこれまで多くの時間を上記のコードを書いているが、それは重要性についての話は本当にありません.ここでは、メイン関数に関連する用語を理解します.関数はfunc キーワードは、関数の名前と一緒に.が必要です() 関数の名前の後の括弧で、必要に応じて、関数の中で使用されるパラメタの中でパラメータを取ることができます.
括弧内の関数のコア機能またはコアロジックを定義します{} . また、我々はreturn 関数から値を返すことができるキーワードは、関数と呼ばれるブロックに戻ります.通常、他の関数から関数を呼び出しますmain 関数).The return キーワードは必須ではなく、通常、機能ブロックの最後に追加されます} .
func hello_world_007() {

}
主関数の外側にカスタム関数を定義することで、適切な名前を指定することができます.Bwing時間のために、我々はそれを空にして、さらに実際の機能の論理を定義することができます.
この関数の名前は、以下の標準に従って指定できます:
  • 文字の使用a-z A-Z , 数0-9 , アンダースコア_ 名前として.
  • 名前の間に空白を含めてはなりません.
  • 番号またはアンダースコアから始めるべきではありません.
  • 関数の定義


    インサイド{} 関数の実際の機能/論理を定義します.関数の内部の変数は、関数に対して局所的なままであり、関数の外部からアクセスしたり変更したりできません.しかし、いくつかのグローバル変数(主または他の関数から)にアクセスしたいなら、パラメータを渡すことができます.当分の間、関数内の実際のコードブロックに注目します.
    
    func hello_world() {
        fmt.Println("Hello World")
    }
    
    これは別の関数を呼び出す基本関数ですPrintln FMTパッケージから、基本的にコンソールにテキストを印刷します.しかし、私たちは関数printlnを使用しています、私たちが関数を使用していないように、それはストリングに内容を印刷しません.今、私たちは前にステップを得ることができ、関数の中で変数を使用して作業を開始します.
    func hello_world() {
        name := "Gopher"
        fmt.Println("Hello", name)
    }
    
    ローカル変数を追加しましたname 関数の内部では、この変数は特定の関数内でのみ参照できます.

    関数呼び出し


    主関数または他の関数から関数を呼び出すことができます() オプションで括弧内のパラメータ.
    package main
    
    import "fmt"
    
    func main() {
        hello_world()    
    }
    
    func hello_world() {
        name := "Gopher"
        fmt.Println("Hello", name)
    }
    
    
    $ go run func.go
    Hello Gopher
    
    そこで、関数を定義しますhello_world を呼び出して、hello_world() メイン関数の内部と現在、我々は実際に機能を実行することができます.

    パラメータを渡す


    我々はオプションを他の関数から変数を解析し、さらに計算とプログラミングのために処理することができます.したがって、関数の中で使用される名前を指定して、その変数の型を指定することで、関数のパラメータを渡すことができます.
    package main
    
    import "fmt"
    
    func main() {
    
        greet_me("Meet")
        n := "John"
        greet_me(n)
    }
    
    func greet_me(name string) {
        fmt.Println("Hello,", name, "!")
    }
    
    $ go run func.go
    Hello, Meet !
    Hello, John !
    
    パラメータを使用しましたname 関数の文字列として関数本体内で使用します.main関数から呼び出されるパラメータ名は、関数宣言で宣言されたものと同じである必要はありません.例えば、変数をmain関数で使用しましたn を呼び出します.私たちも、それはGalangの関数に値を渡すことができます.

    返り値キーワード


    Returnキーワードを使用して関数から値を返すことができます.返される値は後でプログラムの他の場所から使用できます.
    package main
    
    import "fmt"
    
    func main() {
    
        // return value
        y := line_eq(3, 1, 2)
        fmt.println("for x = 3 , y = ", y)
    }
    
    func line_eq(x int, m int, c int) int {
        return ((m * x) + c)
    }
    
    $ go run func.go
    for x = 3 , y =  5
    
    そこで、ここで関数から返された値を取得し、別の変数に格納し、必要な論理を計算することができます.また、パラメータの後に関数の戻り値の型を指定する必要がありますfunc (parameters) return-type { } . ここで、それはコンパイルエラーを与える他の関数から戻り値の指定されたタイプを返す必要があります.
    したがって、基本的に戻り値と戻り値のステートメントを提供して関数コールから値を取得する必要があります.

    複数の戻り値


    また、戻り値の一覧を提供することで、複数の戻り値を提供することもできます(type1 type2 type3 ....) . 値をコンマで区切ることで値を返すことができます.したがって、関数を呼び出している間、変数をコンマ区切りの名前として再び指定する必要があります.
    package main
    
    import "fmt"
    
    func main() {
    
        // multiple return values
        s, c, odd := sqube(5)
        fmt.Println("for x = 5 , x^2 =", s, "x^3 =", c)
        if odd == true {
            fmt.Println("x is odd")
        } else {
            fmt.Println("x is true")
        }
    }
    
    func sqube(x int) (int, int, bool) {
        square := x * x
        cube := x * x * x
        var is_odd bool
        if x%2 == 0 {
            is_odd = false
        } else {
            is_odd = true
        }
        return square, cube, is_odd
    }
    
    $ go run func.go
    for x = 5 , x^2 = 25 x^3 = 125
    x is odd
    
    したがって、2つの整数と1つのBooleanのような関数から複数の値を返しました.パラメータは単一の整数です.関数コールからすべての値を取得するために、3変数をパースする必要があります.したがって、関数からすべての値を得ることができます.
    それはこの部分からです.すべてのコード例とコマンドの参照は100 days of Golang githubリポジトリ.

    結論


    したがって、このシリーズのこの部分から、我々はgolangの機能の基本を理解することができます.宣言、定義、および単純な戻り文と関数呼び出しからカバーしました.お読みありがとうございます.ご質問やご意見がある場合は、コメントや社会的なハンドルで私に知らせてください.ハッピーコーディング