回答: Go 関数には、基本型 (パラメーターなしおよび戻り値の型)、パラメーターの型、戻り値の型、可変個引数型、パラメーター型としての関数など、さまざまな種類があります。詳細な説明: 基本型関数: パラメータや戻り型はなく、初期化または単純なタスクの実行に使用されます。パラメーターを受け入れる関数: 指定された型のパラメーターを受け入れます。パラメーターの型は関数シグネチャで指定されます。値を返す関数: 指定された型の複数の値を返すことができ、戻り値の型は関数シグネチャで指定されます。可変引数関数: ... 構文を使用して、スライスに集められた可変数の引数を受け入れます。パラメーターとしての関数: 関数の処理または操作に使用される、高階関数と呼ばれるパラメーターとしての関数をサポートします。
Go関数の基本的な型
Go言語では、関数はさまざまな型を持つことができ、これらの型は関数のパラメータと戻り値の型を定義します。これらの基本的な型を理解することは、明確で効率的な Go コードを作成するために重要です。
1. 基本型関数
最も基本的な型の関数には、パラメーターや戻り値の型がありません。これらの関数は通常、データの初期化や単純なタスクの実行に使用されます。
func hello() { fmt.Println("Hello, world!") }
2. パラメータを受け入れる関数
関数は 1 つ以上のパラメータを受け入れることができます。パラメーターの型は、関数シグネチャの型によって指定されます。
func sum(a, b int) int { return a + b }
3. 値を返す関数
関数は 1 つ以上の値を返すことができます。戻り値の型は、関数シグネチャの最後の部分で指定されます。
func min(a, b int) (int, error) { if a < b { return a, nil } return b, errors.New("b is not less than a") }
4. 可変パラメータ関数
関数は、...
構文を使用して、可変数のパラメータを受け入れることができます。パラメータは、タイプ []T
のスライスに収集されます。ここで、T
はパラメータのタイプです。 ...
语法来接受可变数量的参数。这些参数被收集到一个切片中,其类型为 []T
,其中 T
是参数类型。
func printAll(strs ...string) { for _, str := range strs { fmt.Println(str) } }
5. 函数作为参数
Go 语言支持函数作为参数的函数,称为高阶函数。高阶函数通常用于处理函数或对函数进行操作。
func forEach(f func(int), nums []int) { for _, num := range nums { f(num) } }
实战案例
考虑一个将命令行参数相加的程序:
package main import ( "fmt" "os" "strconv" ) func main() { args := os.Args[1:] var sum int for _, arg := range args { num, err := strconv.Atoi(arg) if err != nil { fmt.Printf("%s is not a valid number\n", arg) continue } sum += num } fmt.Printf("Sum: %d\n", sum) }
此程序使用 fmt.Atoi
rrreee
fmt.Atoi
を使用してコマンド ライン引数を整数に変換し、追加します。関数を引数として使用して各引数を処理し、エラー処理をメインの合計ロジックから分離します。 🎜以上がgolang 関数の基本的な種類は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。