![見出し画像](https://assets.st-note.com/production/uploads/images/65738981/rectangle_large_type_2_a1a9f42bca55df5eaa25e2f372b75a26.png?width=800)
[Go言語 入門] 構造体
golangで作ってみたいものがあり、golangを学び始めたので学習したことを書いていくノート。
---------------------------------------------------
サイトマップはこちら
---------------------------------------------------
第13回 構造体
golang にはオブジェクト指向におけるクラスという概念がない。
クラスに似た役割として、情報をひとまとめにする役割を担うのが構造体である。
構造体の定義は以下
「type 構造体名 struct { フィールド }」
// main.go
type Person struct {
Name string
Age int
}
関数内で以下のように宣言する。
「変数名 := 構造体名{ 各種値 }」
func main() {
taro := Person{Name: "taro", Age: 18}
fmt.Println(taro)
taro.Age += 10
fmt.Println(taro)
}
// 実行結果
// {taro 18}
// {taro 28}
上記はすべてのフィールド(ここでは Name と Age )に値がある場合のパターン
値を書き換えたい場合は、
「taro」の名前 ⇒ 「taro.Name」
「taro」の年齢 ⇒ 「taro.Age」
として値の代入が可能。
※「の」=「 . 」と解釈すれば理解しやすい。
また、フィールドの一部値が未確定の場合や、すべての値が未確定の場合における宣言は以下
hana := Person{Name: "hana"}
fmt.Println(hana)
yu := Person{Age: 20}
fmt.Println(yu)
hina := Person{}
// var hina Person <- 上と同じ
fmt.Println(hina)
// 実行結果
// {hana 0}
// { 20}
// { 0}
上から
・年齢が未確定
・名前が未確定
・両方未確定
のパターン
int 型の場合は 0 で初期化される。
String型の場合は「」(空文字)で初期化される。
~ Private と Public ~
Private:外部からの参照不可
Public:外部からの参照可
構造体名について、頭文字は原則大文字とする。小文字の場合外部からの参照が不可となる。
// 外部からの参照可
type Person struct {
Name string
Age int
}
// 外部からの参照不可
type person struct {
Name string
Age int
}
また、フィールドの各値についても、頭文字が小文字の場合、外部からの参照は不可となる。
// 例:Age
// Ageは外部からの参照可
type Person struct {
Name string
Age int
}
// Ageは外部からの参照不可
type Person struct {
Name string
age int
}
頭文字は基本は大文字、Private にする場合は頭文字を小文字にする!
以上
この記事が気に入ったらサポートをしてみませんか?