十.Go構造struct
1717 ワード
こうぞうstruct GoのstructはCのstructと似ており、goにはclass はありません. type構造名struct{}を使用して構造を定義し、名前は可視性ルール に従う.は、自身へのポインタタイプメンバー をサポートする.は匿名構造をサポートし、メンバーまたは定義メンバー変数 として使用できます.は、字面値を用いる構造を初期化することができる .は、ポインタによって構造メンバー を直接読み書きすることを可能にする.同じタイプのメンバーは、ダイレクトコピー付与 を行うことができる.サポート=および!=比較演算子、<> はサポートされていませんは匿名フィールドをサポートし、本質的にはileがあるタイプ名のフィールド を定義する埋め込み構造は匿名フィールドとして継承するように見えるが、 を継承するものではない.匿名フィールドポインタ を使用することができる.
直通車
一.Go開発ツールおよびコマンド2.Goプログラミングの基礎知識3.Goのタイプと変数4.Go定数と演算子5.Go制御文6.Go配列7.Goスライスslice 8.Goハッシュ辞書map 9.Go関数func 10.Go構造struct
package main
import (
"fmt"
)
type animal struct {
Name string
Age int
}
type cat struct {
animal
Legs int
Sound string
}
type dog struct {
animal
Age int
}
type unknow struct {
Name string
Details struct {
Age, Country string
}
}
func main() {
c1 := &cat{Legs: 4, Sound: " ", animal: animal{Name: "Tom", Age: 2}}
fmt.Println(c1)
modifyCat(c1)
fmt.Println(c1)
c2 := &struct {
Name string
Age int
}{
Name: " ",
Age: 22,
}
fmt.Println(c2)
u1 := &unknow{Name: " "}
u1.Details.Age = "111"
u1.Details.Country = " "
fmt.Println(u1)
d1 := &dog{}
d1.animal.Name = " "
d1.Age = 6
d1.animal.Age = 10
fmt.Println(d1)
d2 := &dog{animal: animal{Name: " Tom", Age: 12}, Age: 9}
fmt.Println(d2)
}
func modifyCat(mCat *cat) {
mCat.Name = "Jerry"
mCat.Age = 1
mCat.Legs = 5
mCat.Sound = " "
}
直通車
一.Go開発ツールおよびコマンド2.Goプログラミングの基礎知識3.Goのタイプと変数4.Go定数と演算子5.Go制御文6.Go配列7.Goスライスslice 8.Goハッシュ辞書map 9.Go関数func 10.Go構造struct