Go言語のstruct(ストラクト)を勉強したため、自分への備忘録として基本的な使い方を紹介します。
structとは
structとは、あらかじめデータの型とkey(キー)を決めておいて、複数の異なる型のデータを保存しておける機能です。
厳密には異なりますが、
- javascriptのオブジェクト
- Rubyのハッシュ
のようなイメージです。
サンプルコード
今回、勉強のために以下のような、自分の家の情報をstructで保持するサンプルを作成しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
package main import "fmt" type position struct { longitude float32 latitude float32 } type myHouse struct { country string prefecture string position position } func main() { myHouseInfo := myHouse{ country: "日本", prefecture: "東京", position: position{ longitude: 20.1, latitude: 40.33, }, } fmt.Println(myHouseInfo) } |
メインとなるstructは
1 2 3 4 5 |
type myHouse struct { country string prefecture string position position } |
です。
このmyHouseという自作したstructをmyHouseInfoに登録して使います。
宣言する際に引数として値を登録すると、その値を保持します。
今回は、
- country(string型)に”日本”
- prefecture(string型)に”東京”
- position(自作の型)にposition(自作のstruct)
を代入しています。
1 2 3 4 5 6 7 8 |
myHouseInfo := myHouse{ country: "日本", prefecture: "東京", position: position{ longitude: 20.1, latitude: 40.33, }, } |
positionに別で宣言したstructであるpositionを代入できるように、自作で作成したstructには別のstructをもたせることも可能です。
キー無しで宣言もできる
javascriptの関数のように、
1 |
myHouse{"日本", "東京"....} |
と、キー(countryやprefecture)なしで宣言もできます。
しかし、この書き方をするとキーの順番が変わった時に修正が必要になるため、ちゃんとキーとセットでstructを使うほうが無難です。
実行結果
上記のプログラムをターミナルで実行すると
1 2 |
go run main.go {日本 東京 {20.1 40.33}} |
という結果が得られます。
メッチャクチャ基本的な内容ですが、Go初学のいま、中途半端に勉強して忘れてしまうともったいないため、ブログに残しました。
同じようなGo初心者のかたの手助けになるとうれしいです!