Passing Arrays into Functions
メニューを表示するにはスワイプしてください
配列を関数に渡すことができるのは有用な機能であり、特にローカルで宣言された配列を他のスコープ内で利用したい場合に役立ちます。
関数の配列引数の一般的な構文は次のとおりです:
argName [expectedArraySize] dataType
これを関数で実装すると、次のようになります:
index.go
123func myFunc(arr [5] int) { // code here }
次の例は、配列を関数に渡して使用する方法を示しています。
index.go
123456789101112131415package main import "fmt" func sumOfAll(arr [10] int) int { total := 0 for i := 0; i < 10; i++ { total += arr[i] } return total } func main() { var numbers = [10] int { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 } fmt.Printf("Sum: %d", sumOfAll(numbers)) }
Go(Golang)では、配列は常に値渡しで関数に渡されます。つまり、配列を関数に渡すと、関数内で元の配列のローカルコピーが作成されます。そのため、関数内で配列を変更しても、元の配列には影響しません。関数内でアクセスされるデータは、元の配列のコピーだからです。
次のプログラムは、関数内で配列を変更しても元の配列に影響しないことを示しています。
index.go
12345678910111213package main import "fmt" func myFunc(nums [3] int) { nums[1] = 10 } func main() { var values = [3] int {1, 2, 3} fmt.Println("Before:", values) myFunc(values) fmt.Println("After: ", values) }
注意
値渡しとは対照的に、参照渡しという概念があり、配列や変数への参照が関数に渡されます。そのため、関数内で値を変更すると元の値も変更されます。一部のプログラミング言語では、配列はデフォルトで参照渡しされます。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 5. 章 8
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 5. 章 8