Go の基礎
Go Slices: append, len and cap
The list type you will use most in Go: grow it with append, cut it with [a:b], and watch out for shared memory.
学べること
- append
- Slicing with [a:b]
- make, len and cap
numbers[1:4]
30
11
42
13
54
A growable view of an array
A slice is a view of an array that can grow. It is the list type you will use most in Go. append adds items and returns the updated slice.
numbers[1:4] takes the items at positions 1, 2 and 3. That new slice shares memory with numbers, so changing middle[0] also changes numbers[1]. make creates an empty slice with room for three items, and cap shows that room.
重要なポイント
- append returns the updated slice.
numbers[1:4]has the items at 1, 2 and 3.- A slice shares memory with the slice it was cut from.
実行できる Go のサンプル
Go
main.go
package main
import "fmt"
func main() {
numbers := []int{3, 1, 4}
numbers = append(numbers, 1, 5)
fmt.Println(numbers, len(numbers))
middle := numbers[1:4]
fmt.Println(middle)
middle[0] = 100 // a slice shares the array it was cut from
fmt.Println(numbers)
squares := make([]int, 0, 3)
for i := 1; i <= 3; i++ {
squares = append(squares, i*i)
}
fmt.Println(squares, len(squares), cap(squares))
for index, value := range squares {
fmt.Println(index, value)
}
}
[3 1 4 1 5] 5
[1 4 1]
[3 100 4 1 5]
[1 4 9] 3 3
0 1
1 4
2 9練習
サンプルをオンラインコンパイラーで開き、値を変えたり行を追加したりして、実行する前に出力を予想してみましょう。次に、わざとコードを壊してコンパイラーのメッセージを読んでみてください。
このレッスンを終えましたか?
学習済みにすると進み具合を記録できます。
進み具合はこのブラウザーに保存されています ログインすると、どのデバイスでも引き継げます。
チャレンジで練習する
このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。
すべてのチャレンジ