関数へのデータの渡し方
メニューを表示するにはスワイプしてください
関数は、スコープの違いによって外部からデータにアクセスできない場合、あまり有用ではありません。しかし、「パラメータ」を使うことで、関数にデータを渡すことができます。
パラメータは、関数が呼び出されたときに受け取ることを期待するデータの形式を定義します。
前の章では、パラメータのない単純な関数を見てきました。しかし、次の構文を使ってパラメータ付きの関数を宣言できます。
index.go
123func myFunc(param1 datatype, param2 datatype, ...) { // Code }
各パラメータには固有の名前とその後にデータ型を指定できます。パラメータはカンマで区切ります。パラメータの命名規則は変数と同様です。
パラメータ付き関数の使用例を以下に示します。
index.go
12345678910111213141516171819202122package main import "fmt" func outThreeTimes(message string) { fmt.Println(message) fmt.Println(message) fmt.Println(message) } func sum(value1 int, value2 int) { fmt.Println("Sum:", value1 + value2) } func product(val1 int, val2 int, val3 int) { fmt.Println("Product:", val1 * val2 * val3) } func main() { outThreeTimes("Hello World") sum(17, 25) product(4, 7, 9) }
上記のプログラムでは、1つ、2つ、3つのパラメータを持つ関数があることに気付くでしょう。必要に応じて、任意の数のパラメータを持つ関数を作成することが可能です。
これらの関数には、値を直接渡すことも、変数を通じて渡すこともできます。例えば、次の文では、パラメータが期待される場所に直接文字列値を指定しています。
index.go
1outThreeTimes("Hello World")
または、文字列変数に値を格納し、その変数を関数に渡すこともできます。
index.go
12var msg string = "Hello World" outThreeTimes(msg)
以下の文では、両方のアプローチが組み合わさっていることがわかります。
index.go
123var a int = 4 var b int = 7 product(a, b, 9)
ニーズに最も適した方法を選択可能。
注意
変数やデータ値を関数に渡す際、それらは「引数」と呼ばれる。例えば、
product(a, b, 9)の場合、a、b、9が引数となる。一方、関数宣言内では、val1 int、val2 int、val3 intは「パラメータ」と呼ばれる。
データを関数に渡す際は、パラメータで定義された順序を守ることが重要。例えば、func myFunc(an int, b string) という関数では、最初の引数は整数、2番目は文字列でなければならず、順序が異なるとエラーとなる。
関数内では、パラメータは渡された引数の値を持つ変数として機能する。そのため、関数本体内でパラメータと同じ名前の変数を宣言するとエラーになる。
index.go
123func myFunc(param int) { var param int = 1 // Error Here }
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください