- GO語言之結構體
結構體的聲明:
struc:= Hello{
Name: "mytest",
Power: 200,
}
注意:
- 上面的結構體中,結尾的逗号,是不能省的。
- 如果沒有逗号,編譯器會給出一個錯誤。
- 或者你可以聲明一個空的結構體:
- 我們可以将一個方法和一個結構體關聯:
type Hello struct {
Name string
Power int
}
func (s *Hello) Super() {
s.Power += 10
}
在上面的代碼中,我們可以說類型*Hello是Super方法的接收者。可以向下面代碼一樣調用Super:
hello:= &Hello{"test", 100}
hello.Super()
fmt.Println(hello.Power) // 将列印:110
或者在一個函數中傳回一個結構體
func newTest(name string, power int) Hello {
return Hello{
Name: name,
Power: power,
}
}
結構體的嵌套:
type Person struct {
Name string
}
func (p *Person) Introduce() {
fmt.Printf("Hi, I'm %s\n", p.Name)
}
type Hello struct {
*Person
Power int
}
// 使用:
mytest:= &Hello{
Person: &Person{"Goku"},
Power: 9001,
}
mytest.Introduce()