Golang 関数に関するよくある質問への回答は次のとおりです。関数はどの型にも属しませんが、メソッドは特定の型に属します。関数ポインタは関数のアドレスを格納する変数であり、他のポインタと同様に使用できます。関数は複数の値をタプルとして返すことができます。関数は、 ... 構文を使用して可変長パラメータ リストを宣言できます。匿名関数は、1 回限りの使用関数を作成するために使用される名前のない関数です。
# Golang 関数に関するよくある質問
1. 関数とメソッドの違い
コード例:
// 函数 func add(a, b int) int { return a + b } // 方法 type Person struct { name string } func (p Person) greet() string { return "Hello, my name is " + p.name }
2. 関数ポインター
関数ポインターは、関数アドレス。これらは、関数を呼び出すための他のポインターと同様に使用できます。コード例:
func add(a, b int) int { return a + b } var addFunc = add // 函数指针 func main() { result := addFunc(1, 2) // 使用函数指针调用函数 fmt.Println(result) // 输出: 3 }
3. 複数の値を返す
関数はreturn を使用できます。ステートメントは複数の値を返します。戻り値はタプルとして返されます。
コード例:
func getMinMax(nums []int) (int, int) { min := nums[0] max := nums[0] for _, num := range nums { if num < min { min = num } if num > max { max = num } } return min, max }
4. 使用できる変数パラメータ一覧
関数## 可変長パラメータリストを宣言するための構文。コード例:
func sum(nums ...int) int { sum := 0 for _, num := range nums { sum += num } return sum } func main() { result := sum(1, 2, 3, 4, 5) // 可变参数列表 fmt.Println(result) // 输出: 15 }
匿名関数は、名前のない関数です。通常、1 回限りの使用関数を作成するために使用されます。
コード例:
func main() { // 创建匿名函数 add := func(a, b int) int { return a + b } // 使用匿名函数 result := add(1, 2) fmt.Println(result) // 输出: 3 }
以上がgolang 関数に関するよくある質問の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。