Go 言語の関数のパラメータと引数
1. パラメータと引数(Arguments)
関数には、パラメータとして情報を渡すことができます。パラメータは、関数内部で変数として機能します。
パラメータとその型(Type)は、関数名の後の丸括弧内に指定します。パラメータは必要に応じていくつでも追加でき、各パラメータをカンマで区切ります。
2. シンタックス
func FunctionName(param1 type, param2 type, param3 type) {
// 実行されるコード
}3. パラメータを持つ関数の実装例
以下の例では、string型のパラメータを1つ(fname)持つ関数を示しています。familyName()関数が呼び出される際、名前(例:Liam)を渡します。この名前は関数内部で使用され、異なるファーストネームと共通の苗字を出力します。
3.1. 実装コード
package main
import ("fmt")
// fname という string 型のパラメータを持つ関数
func familyName(fname string) {
fmt.Println("こんにちは", fname, "Refsnesさん")
}
func main() {
familyName("Liam")
familyName("Jenny")
familyName("Anja")
}実行結果:
こんにちは Liam Refsnesさん
こんにちは Jenny Refsnesさん
こんにちは Anja Refsnesさん 注意: 関数に渡される実際の値は引数(Argument)と呼ばれます。上記の例では、fname はパラメータであり、Liam、Jenny、Anja は引数となります。
4. 複数のパラメータ
関数内部には、必要に応じて複数のパラメータを追加することが可能です。
4.1. 実装例
package main
import ("fmt")
// fname (string型) と age (int型) の2つのパラメータを持つ関数
func familyName(fname string, age int) {
fmt.Println("こんにちは", age, "歳の", fname, "Refsnesさん")
}
func main() {
familyName("Liam", 3)
familyName("Jenny", 14)
familyName("Anja", 30)
}実行結果:
こんにちは 3 歳の Liam Refsnesさん
こんにちは 14 歳の Jenny Refsnesさん
こんにちは 30 歳の Anja Refsnesさん5. 複数パラメータ使用時のルール
複数のパラメータを扱う場合、関数呼び出し時にはパラメータと同じ数の引数を渡す必要があり、さらにそれらは定義された順序通りに渡さなければなりません。個数や型、順序が一致しない場合、コンパイルエラーの原因となります。