近年の Golang 言語の台頭により、ますます多くの開発者がこの言語に触れ、開発に使用し始めており、Golang 機能はその開発の重要な部分を占めています。では、高品質の Golang 関数を作成するにはどうすればよいでしょうか?以下で一緒に調べてみましょう。
Go ではキーワード func を使用して関数を宣言し、その構文は次のとおりです:
func 函数名(参数列表) (返回值列表) { // 函数体 }
このうち、関数名は次のようになります。識別子の命名規則とパラメータ リスト 戻り値リストと戻り値リストはどちらも空にすることができ、複数の戻り値リストはカンマで区切られます。例:
func sayHello() { fmt.Println("Hello, world!") } func add(x int, y int) int { return x + y } func swap(x, y string) (string, string) { return y, x }
Go では、関数パラメータは値によって渡されます。つまり、関数のパラメータは、参照を渡すのではなく関数スタックにコピーされます。直接。したがって、以下に示すように、関数内でパラメータの値が変更されても、元のパラメータ値は影響を受けません。
func main() { x := 10 modify(x) fmt.Println(x) // 输出: 10 } func modify(x int) { x = 20 }
パラメータ値を変更したい場合は、ポインタを使用して次のことを行うことができます。
func main() { x := 10 modify(&x) fmt.Println(x) // 输出: 20 } func modify(x *int) { *x = 20 }
変数アドレスを取得するには & を使用し、変数ポインターを逆参照するには * を使用する必要があることに注意してください。
匿名関数は、名前を付ける必要がなく、直接定義して呼び出すことができる関数タイプです。 Go では、匿名関数を使用してクロージャを実装できます。つまり、関数内から関数外の変数にアクセスできます。例:
func main() { x := 10 add := func(y int) int { return x + y } fmt.Println(add(20)) // 输出: 30 }
この例では、外部変数 x を使用して加算演算を実装する追加無名関数を定義します。
Go 言語では、関数は第一級市民であり、関数をパラメーターとして別の関数に渡すことができます。例:
func main() { x := []int{1, 2, 3, 4, 5} fmt.Println(sum(x, func(v int) int { return v * 2 })) // 输出: 30 } func sum(x []int, f func(int) int) int { sum := 0 for _, v := range x { sum += f(v) } return sum }
この例では、整数の配列を受け取る sum 関数と整数を処理する関数を定義します。この関数をパラメータとして sum 関数に渡し、渡された関数を使用して配列内の各要素を処理し、最終的に sum 演算を実装します。
Go 言語は可変パラメータ関数をサポートしています、つまり、関数パラメータの数は不確実である可能性があります。 ... 演算子を使用して、この機能を実現できます。例:
func main() { fmt.Println(add(1, 2, 3, 4, 5)) // 输出: 15 } func add(nums ...int) int { sum := 0 for _, num := range nums { sum += num } return sum }
この例では、任意の数の int 型パラメータを受け取り、その合計を返す add 関数を定義します。可変長引数は実際にはスライスであり、スライスと同じように操作できます。
つまり、Golang 関数の作成は Golang 開発の中核の 1 つであり、高品質のコードを作成するために非常に重要です。ここでは、Golang 開発者が Golang 関数の使用法をよりよく理解できるように、Golang 関数の基本的な知識を簡単に紹介します。
以上がgolang関数の書き方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。