Slices
メニューを表示するにはスワイプしてください
スライスは配列に似ていますが、動的な長さを持ち、配列よりも柔軟に利用できるデータ構造です。
スライスを作成するには、配列と同じ構文を使用しますが、この場合はサイズを指定しません。
varキーワードを使ったスライスの作成方法:
// Creates an empty slice with no elements
var sliceName [] dataType
// Creates a slice with the specified elements
var sliceName = [] dataType {element_1, element_2, ...}
:=演算子を使ったスライスの作成方法:
// Creates a slice with the specified elements
sliceName := [] dataType { element_1, element_2, ... }
スライスに要素を追加するには、append関数を使用します。append関数は、追加された要素を含む新しいスライスを返し、それを元のスライス変数に格納できます。例を見ればより理解しやすくなります。append関数の基本構文は次のとおりです:
append(originalSlice, newElement1, newElement2, …)
次のコードは、append関数の使用例を示しています:
index.go
1234randomNumbers := [] int { 1, 4, 5} fmt.Println(randomNumbers) // Output: [1 4 5] randomNumbers = append(randomNumbers, 7, 9) fmt.Println(randomNumbers) // Output: [1 4 5 7 9]
配列内の要素にアクセスできるのと同様に、次の構文を使用して配列の一部を参照することも可能です。
index.go
1arrayName[startIndex:endIndex + 1]
startingIndex から endingIndex までのすべての要素が抽出されます。endingIndex + 1 を指定する必要がある点に注意してください。例を見ればより明確になります。例えば:
index.go
12var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } fmt.Println(numbers[4:9]) // Output: [10 12 14 16 17]
インデックス 4 から 9 までの要素を抽出(インデックス 4 を含み、インデックス 9 を含まない)する構文表現。
index.go
1arrayName[startingIndex:endingIndex + 1]
この抽出した配列の一部を変数に格納することで、スライスを作成することも可能です。
index.go
123var numbers = [10] int { 2, 4, 6, 9, 10, 12, 14, 16, 17, 19 } numbersPart := numbers[2:7] fmt.Println(numbersPart) // Output: [6 9 10 12 14]
このようなスライスは、作成元の配列の一部を参照している点に注意が必要です。そのため、スライス内で行った変更は元の配列にも反映されます。
index.go
12345678910111213package main import "fmt" func main() { var pin = [4] int { 1, 2, 3, 4 } part := pin[1:3] fmt.Println(pin) // Output [1, 2, 3, 4] fmt.Println(part) // Output: [2, 3] part[0] *= 2 part[1] *= 3 fmt.Println(part) // Output [4, 9] fmt.Println(pin) // Output [1, 4, 9, 4] }
すべて明確でしたか?
フィードバックありがとうございます!
セクション 5. 章 3
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 5. 章 3