技術向上

プログラミングの学び、気になるテクノロジーやビジネストレンドを発信

range【Go】

配列、スライス、mapからループ処理で要素を取り出す際に、便利な機能です。

nums := []int{100, 200, 300}

for i, v := range nums {
    fmt.Println(i, v)
}

インデックスと値を順に取り出しています。
どちらかを破棄する場合にはアンダースコアを用いて破棄します。

nums := []int{100, 200, 300}

for _, v := range nums {
    fmt.Println(v)
}


mapの場合の例です。

prices := map[string]int{
    "bread": 170,
    "pizza": 500,
    "juice": 130,
}

for key, amt := range prices {
    fmt.Println(key, amt)
}

keyだけ取り出したい場合は、値の記述を省略できます。

prices := map[string]int{
    "bread": 170,
    "pizza": 500,
    "juice": 130,
}

for key := range prices {
    fmt.Println(key)
}