Go言語 ~基礎編~ Array

go

今回は、Arrayについて学習しましょう。

学習履歴

Array(配列)とは

KOUKI
KOUKI

Arrayは、たくさんのデータを一纏めにするために使用します。

例えば、「住所の一覧」、「電話番号リスト」、「商品一覧」など一纏めにしたいデータを格納するときに便利です。

Arrayは、次のように表されます。

[4]は、Arrayが保持できる要素数を表しており、stringは、保持できるGo言語のtypeを示しています。

Arrayは、0から要素を指定できます。

Arrayの初期値

KOUKI
KOUKI

Arrayの初期値について見てみましょう。

Arrayの初期値は、typeに依存します。

Int typeの場合は、初期値が0, String typeの場合は、初期値が””(空)ですね。

このようにArrayは、typeの初期値を伴って作成されます。

Array リテラル

Arrayを宣言する時、初期化と共に値を格納することができます。

簡単なプログラムを書いて、理解を深めましょう。

fmtパッケージとArray

Arrayの要素を出力する時、fmtパッケージのPrint関数で、以下のようにも出力できます。

一つ一つ、インデックス指定で値を取り出す必要がないのです。

フォーマット出力にて、もう少し詳しい情報を表示することもできます。

Arrayの長さ(len関数)

Arrayの長さは、len関数にて確認可能です。

これは、loop処理などと組み合わせると便利です。

KOUKI
KOUKI

このパターンは、現場でもよく使いますね。

for…rangeで安全なループ

len関数より安全なループ処理として、“for…range”があります。

先ほどのコードを修正してみます。

KOUKI
KOUKI

すみません、こっちの方がよく使われます!

Arrayの要素外にアクセスすることがないので、こちらを使う方が安全だと思われます。

ちなみに、for…rangeは、エラーオブジェクトと同じように、_(アンダースコア)を使うこともできます。

KOUKI
KOUKI

まずは、_(アンダースコア)を使わないとどうなるか見てみましょう。

indexを省略して見ました。プログラムを実行します。

エラーになりますね。このように、for…rangeは、indexとvalueの両方を使う必要があります。

KOUKI
KOUKI

では、_(アンダースコア)を使ってみましょう。

今度は、エラーを回避できましたね^^

Arrayとファイル処理

KOUKI
KOUKI

Arrayとファイル処理は、切っても切れない関係です。

Arrayが真価を発揮するのは、多量のデータを扱う時でしょう。

次のファイルを作成してください。

readfile.goは、ファイルを読みこむプログラムを書きます。data.txtは、float型のデータを格納します。

実行します。

上記のサンプルは、os.Open関数にて、ファイルから読み取った値をArrayに格納して処理をしています。また、テキストから読み込んだ値はString型になります。そのため、Float型に変換する処理を加えてます。

まとめ

KOUKI
KOUKI

最後に本章で学習したことをまとめて終わりにしましょう。

・ Arrayは、次のように宣言をする -> var myArray [3]int
・ Arrayのindex値は、”0″から始まる
・ Arrayの初期値は、宣言したtypeよって決まる
・ Arrray リテラルによって次のように宣言ができる -> [3]int{4, 2, 5}
・ Arrayのindex外にアクセスすると処理落ちする
・ Arrayの要素数を数えるには、”len”関数を使う
・ Arrayのループ処理には、for … rangeループが安全
・ for … rangeループ時に、_(アンダースコア)を使うと処理をスキップできる
・ os.Open関数でファイルをオープンする
・ bufio.NewScannerで1行ごとの読み取りを行い、string型で返す

参考書籍

次回

次回は、Sliceを学習しましょう!

コメントを残す