2
0

More than 3 years have passed since last update.

【Golang】Go言語の配列の基礎

Posted at

最近Go言語の勉強を初めました!

今回は配列の基礎について復習したので備忘録として簡単にまとめさせていただきます。

書き方

1. var 変数名 [長さ]データ型
2. var 変数名 [長さ]データ型 = [長さ]データ型{初期値A, 初期値B}
3. 変数名 := [...]データ型{初期値A, 初期値B}


package main

import "fmt"

func main() {
    var a [3]int
    a[0] = 100
    a[1] = 200
    a[2] = 300
    fmt.Println(a) //=> [100 200 300]

    var b [3]int = [3]int{100, 200, 300}
    b = append(b, 400) //=> ERROR
    fmt.Println(b)     //=> [100 200 300]

    c := [...]int{100, 200, 300}
    fmt.Println(c) //=> [100 200 300]
}

配列は長さが決められており、appendなどを用いて要素を追加しようとするとエラーになります。
実際は次に説明するスライスを使いことが多いようです。スライスは配列の長さを変更することができます。

スライスの書き方

1.var 変数名 []型
2.var 変数名 []型 = []型{初期値1, ..., 初期値n} 
3.変数名 := 配列[start:end]

package main

import "fmt"

func main() {

    n := []int{1, 2, 3, 4, 5, 6}
    fmt.Println(n)      //=> [1 2 3 4 5 6]
    fmt.Println(n[2])   //=> 3
    fmt.Println(n[2:4]) //=> [3 4]
    fmt.Println(n[:2])  //=> [1 2]
    fmt.Println(n[2:])  //=> [3 4 5 6]
    fmt.Println(n[:])   //=> [1 2 3 4 5 6]

    n[2] = 100
    fmt.Println(n) //=> [1 2 100 4 5 6]

    var board = [][]int{
        []int{0, 1, 2},
        []int{3, 4, 5},
        []int{6, 7, 8},
    }
    //入れ子
    fmt.Println(board) //=> [[0 1 2] [3 4 5] [6 7 8]]

    n = append(n, 100)
    fmt.Println(n) //=> [1 2 100 4 5 6 100]

}

↑のようにスライスの要素を変更すると、その元となる入れるの要素も変更されている。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0