はじめに
記述するGo言語の配列については一部のみです。
配列の宣言方法
角括弧内[]
に長さを宣言し、その後ろに型を宣言します。
配列の要素にアクセスするには、配列の変数の後ろに角括弧[]
を付けその中に添字を記述します。
※ 添字は[0]
から始まります。
package main
import (
"fmt"
)
func main() {
var number [3]string
number[0] = "zero"
number[1] = "one"
number[2] = "two"
fmt.Println(number) // => [zero one two]
fmt.Println(len(number)) // => 3
}
配列の宣言時に値を代入
変数に:=
で代入できます。上記の宣言の後ろに{}
を付け、その中に代入したい値を,
で区切り記述します。
package main
import (
"fmt"
)
func main() {
number := [3]string{"zero", "one", "two"}
fmt.Println(number) // => [zero one two]
fmt.Println(len(number)) // => 3
}
ここでつまずいた
{}
の中の要素を見やすく複数行に分けて記述したいことがあると思います。しかし以下の場合はコンパイルエラーが発生します。
func main() {
number := [3]string{
"zero",
"one",
"two"
}
fmt.Println(number)
fmt.Println(len(number))
}
// syntax error: unexpected newline, expecting comma or }
原因は{}
の要素の最後にも,
を付けないといけないからです。
package main
import (
"fmt"
)
func main() {
number := [3]string{
"zero",
"one",
"two", // <= , が必要
}
fmt.Println(number)
fmt.Println(len(number))
}
;
の自動挿入
Go言語は多言語によくある文末の;
を省略できます。コンパイル時にGoコンパイラによって;
を挿入されます。上記のコンパイルエラーはこの自動挿入によって発生しているようです。
package main;
import (
"fmt"
);
func main() {
number := [3]string{
"zero",
"one",
"two"; // <= ここに ; が挿入される
};
fmt.Println(number);
fmt.Println(len(number));
};
参考: (https://github.com/tsurubee/golang-study/issues/1)
最後に
参考サイトはスターティングGo言語についてのでした。
買ってみようかなぁ~。
[スターティングGo言語] (https://www.amazon.co.jp/%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0Go%E8%A8%80%E8%AA%9E-CodeZine-BOOKS-%E6%9D%BE%E5%B0%BE-%E6%84%9B%E8%B3%80/dp/4798142417/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=Go%E8%A8%80%E8%AA%9E&qid=1558664315&s=gateway&sr=8-1)