既存のスライス/配列のスライス
CoddyのGOジャーニー「基礎」セクションの一部 — レッスン 80/109。
既存のスライスや配列から、[start:end] 構文で範囲を指定することで、新しいスライスを作成できます。
数値のスライスを作成します:
numbers := []int{10, 20, 30, 40, 50}
fmt.Println("Original:", numbers)インデックス1から3(3は含まない)までの要素を抽出します:
slice1 := numbers[1:3]
fmt.Println("Slice [1:3]:", slice1)結果:
Original: [10 20 30 40 50]
Slice [1:3]: [20 30]開始インデックスまたは終了インデックスを省略することもできます:
slice2 := numbers[:2] // 開始からインデックス2まで(2は含まない)
slice3 := numbers[3:] // インデックス3から最後まで
fmt.Println("Slice [:2]:", slice2)
fmt.Println("Slice [3:]:", slice3)結果:
Slice [:2]: [10 20]
Slice [3:]: [40 50]チャレンジ
初心者このチャレンジでは、既存のスライスをスライスして新しいサブスライスを作成する練習をします。フルーツのスライスがあり、そこから2つの新しいスライスを作成する必要があります:
- 最初の3つのフルーツだけを含むスライス
- 最後の2つのフルーツだけを含むスライス
その後、両方の新しいスライスをプリントして、正しく動作することを確認してください。
チートシート
既存のスライスや配列から [start:end] 構文を使用して、新しいスライスを作成します:
numbers := []int{10, 20, 30, 40, 50}
slice1 := numbers[1:3] // インデックス1から3(3は含まない)までの要素
fmt.Println(slice1) // [20 30]開始インデックスまたは終了インデックスを省略することもできます:
slice2 := numbers[:2] // 開始からインデックス2(2は含まない)まで
slice3 := numbers[3:] // インデックス3から最後まで
fmt.Println(slice2) // [10 20]
fmt.Println(slice3) // [40 50]自分で試してみよう
package main
import "fmt"
func main() {
// 元のフルーツのスライスです
fruits := []string{"apple", "banana", "orange", "grape", "kiwi"}
// TODO: 最初の3つのフルーツだけを含む 'firstThree' という新しいスライスを作成してください
// TODO: 最後の2つのフルーツだけを含む 'lastTwo' という新しいスライスを作成してください
// 結果を出力します
fmt.Println("First three fruits:", firstThree)
fmt.Println("Last two fruits:", lastTwo)
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
11複合型:スライス
スライス入門スライスリテラルの宣言`make` によるスライスの作成スライスの長さと容量スライス要素へのアクセス要素の追加既存のスライス/配列のスライススライスの反復処理スライスのコピーまとめ:動的リスト