Go言語の型は、typeで自由に作ることができる。今回は、「複数の任意の型の値を一つにまとめたもの」である構造体(struct)という型を作成する。
例えばryokoという人を番号とふりがなをつけて表示してみる。
package main
import "fmt"
type Person struct {
id int
name string
reading string
}
func main() {
var ryoko Person
ryoko = Person{id: 1, name: "ryoko", reading: "りょうこ"}
fmt.Println(ryoko)
}
type Person structのtypeとstructのセットでPersonという人の構造体の型を決める。次にPersonの型をidやnameなどを:で指定する。:の前にある型を構造体の場合、フィールドと呼ぶ。これで型を決定したので、main関数でPersonの型を使うことができて、ryoko = Person{id: 1, name: "ryoko", reading: "りょうこ"}で中身を指定してfmt.Println(ryoko)とすると、下記のように表示される。

ここで、ryokoのreadingだけ表示したい場合は、 fmt.Println(ryoko.reading)とすれば表示される。
では、次にpackageに構造体を使ってmain関数で呼び出してみる。Go言語では、packageに組み込んだ構造体がよく使われる。
まず、packageを作る。main.goと同じ階層にsampleディレクトリを作成し、その中にsample.goファイルを作る。
できたsample.goに下記のコードを記載する。
package sample
type Person struct {
Id int
Name string
Reading string
}
これで、Personの型を入れたpackageができた。
次にmain.goファイルに下記のコードを記載する。
package main
import (
"fmt"
"./sample"
)
func main() {
var ryoko sample.Person
ryoko = sample.Person{Id: 1, Name: "ryoko", Reading: "りょうこ"}
fmt.Println(ryoko)
}
import ( "fmt" "./sample" )でsampleファイルを呼び出す。func main()でryokoという変数にpackageの中のPerson型を使うという意味で、var ryoko sample.Personを記載して、ryokoの値を指定する。この時、()内の型の最初の文字を大文字にすることを注意する。
そうすると下記のように一番最初と同じ画面が表示される。





