天天看點

GO語言之---結構體

  • 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()