2017/05/02更新

[Go] 配列を学ぶ

このエントリーをはてなブックマークに追加            

こんにちは、@yoheiMuneです。
今日はGo言語の配列の使い方についてブログを書きたいと思います。基本的に実装では配列よりももっと柔軟なスライスを使いますが、配列も基礎として覚えておきたいところです。
画像

目次




配列とは

GO言語ではコンポジット型の一種で、同一の型の値を複数保持することができるデータ構造です。スライスとは異なり、サイズは固定長で配列を作成したのちにサイズを変更することはできません。例えば以下のように使うことができます。
// 型がintで要素数が3の配列を定義
var a [3]int

// 1番目に値を代入
a[1] = 2

// 参照もできる.
// 値の初期値は、型の初期値(intだと0)になる
println(a[0], a[1], a[2])  // 0 2 0
以降では、使い方を簡単に見てみたいと思います。



配列の使い方

配列は以下のように使うことができます。

配列の作成

// 初期化(要素数=3、値は未指定)
var a [3]int

// 初期化(要素数=3、値を指定)
var b [3]int = [3]int{1, 2, 3}
// または
c := [3]int{1, 2, 3}

// 初期化(要素数を省略、値を指定)
d := [...]int{1, 2, 3, 4, 5}

// 初期化(要素番号を指定)
e := [...]string{0:"a", 2:"c", 3:"d"}
fmt.Printf("%v\n", e)  // [a  c d]  : 要素番号1は空文字


配列への参照

// 値の参照
println(c[1])  // 2

// ループで
for i, v := range c {
    println(i, v)
}


配列への更新

a[1] = 10
fmt.Printf("%v\n", a)  // [0 10 0]


配列同士の比較

f := [2]int{1, 2}
g := [...]int{1, 2}
h := [2]int{1, 3}
println(f == g, f == h)  // true false

// 以下はコンパイルエラー(型が違うと比較できない)
i := [3]int{1, 2, 3}
println(f == i)  // invalid operation: f == i (mismatched types [2]int and [3]int)



参考資料

以下を参照しました、ありがとうございます。

逆引きGolang (配列)

(本)プログラミング言語Go



最後に

Go言語、仕事で使うので徐々に書けるようになってきたけど、色々と調べながらでまだまだ効率が良くないと思う今日この頃。学んでブログに書いて知識の定着を行いたいと思います。いっぱいブログを書くぞー。

最後になりますが本ブログでは、Go言語・Python・Linux・Node.js・フロントエンド・インフラ・開発関連・Swift・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。