Go 言語は Google が開発した新しいプログラミング言語で、シンプル、効率的、学習しやすく、同時プログラミングに適しています。 Go言語において関数は非常に重要なプログラミング要素ですので、この記事ではgolang関数の使い方を紹介します。
1. 関数の定義と呼び出し
Go言語における関数の定義は次のとおりです:
func function_name(parameter_list) (result_list) { // 函数代码 }
このうち、関数名
は関数名;parameter_list
はパラメータのリストであり、複数のパラメータはカンマで区切られます; result_list
は関数の戻り値のリストであり、複数の戻り値はカンマで区切られます; { }
内部には、関数が実行されるコード ブロックがあります。
関数呼び出しの構文は次のとおりです。
function_name(parameter_list)
たとえば、単純な関数 sum
が以下に定義されており、これは int# 型の 2 つのパラメーターを受け取ります。 ## 、合計を返します:
func sum(a int, b int) int { return a + b }
sum 関数を呼び出す方法は次のとおりです:
x := sum(3, 5)
8# を返します。 ## を変数 x
に代入します。 2. 複数の戻り値関数
Go 言語では、関数は複数の値を返すことができます。以下の例に示すように、関数
more_return は 2 つの文字列を返します: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">func more_return() (string, string) {
return "hello", "world"
}</pre><div class="contentsignin">ログイン後にコピー</div></div>
呼び出しメソッドは次のとおりです:
a, b := more_return()
上記のコードは 2 つの文字列を返します。変数
a と b
に値を代入します。 3. パラメータとしての関数
Go 言語では、関数をパラメータとして別の関数に渡すこともできます。たとえば、次の例は関数をパラメータとして示しています。
func calc(a int, b int, f func(int, int) int) int { return f(a, b) } func add(a int, b int) int { return a + b } func main() { result := calc(3, 5, add) fmt.Println(result) // 8 }
上記のコードでは、
calc 関数は 3 つのパラメータを受け取ります: a
、b
そして関数 f
、その型はそれぞれ int
、int
、func(int, int) int
です。 add
関数は、2 つの数値を加算するために使用される関数であり、func(int, int) int
型の要件を満たします。 main
関数では、calc
関数が呼び出され、3
と 5
の加算値が計算されます。 add 関数はパラメータとして
calc 関数に渡されます。
4. 関数の再帰呼び出し
func fibonacci(n int) int { if n < 2 { return n } return fibonacci(n-1) + fibonacci(n-2) }
fibonacci
関数はパラメータとして整数n を受け取り、フィボナッチを返します。そのシーケンス内の
n 番目の数値の値。
n が 2 未満の場合、戻り値は
n そのものであり、それ以外の場合は、
fibonacci 関数が再帰的に呼び出されます。
5. 匿名関数
package main import "fmt" func main() { a := []int{5, 2, 6, 3, 1, 4} // 使用匿名函数进行排序 sort.Slice(a, func(i, j int) bool { return a[i] < a[j] }) fmt.Println(a) // [1 2 3 4 5 6] }
sort.Slice
関数を使用してスライスを並べ替えています。匿名関数をパラメータとして渡す必要があります。匿名関数のパラメータ リストはi と
j で、スライスの 2 つの要素を表します。戻り値の型は # です。 ##bool
、どの要素が小さいかを表します。 6. クロージャ
クロージャは、関数とそれが参照する外部変数で構成される全体です。 Go 言語では、関数がクロージャになることがあります。クロージャ内の外部変数はクロージャ内で参照されますが、その有効期間はクロージャとは異なり、クロージャの呼び出しが終了した後も存続できます。次の例は、クロージャの使用方法を示しています。
func accumulator() func(int) int { sum := 0 return func(x int) int { sum += x return sum } } func main() { f := accumulator() fmt.Println(f(1)) // 1 fmt.Println(f(2)) // 3 fmt.Println(f(3)) // 6 }
上記のコードでは、
accumulator関数は匿名関数を返し、
sum 変数は匿名関数で参照されます。関数。クロージャ呼び出しが終了した後も、sum
変数はまだ存在し、その値を保持し続けます。 main
関数では、accumulator
関数を呼び出してクロージャ関数 f
を取得し、f
関数を複数回呼び出して累積を計算します。そして。 7. 概要
Go 言語の関数は非常に重要なプログラミング要素であり、シンプル、効率的、学習しやすく、パラメーターとしての関数、複数の戻り値、および再帰: 呼び出し、匿名関数、クロージャ、その他多くの機能。これらの機能の使用をマスターすると、Go 言語開発作業をより効率的に完了するのに役立ちます。
以上がgolang関数の使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。