Go-09结构体

结构体的定义


package main

import "fmt"

type Person struct{
Name string
Age int
}

func main(){
var p1 Person
p1.Name="张三"
p1.Age=18
fmt.Printf("%#v",p1)

p2:=Person{
Name:"李四"
Age:20,
}
fmt.Printf("%#v",p2)

p3:=new(Person)
p3.Name="王五"
p3.Age=20
fmt.Printf("%#v",p3)

}

从上面来看定义还是十分的简单的在此说明一下结构体名大写表示允许外部访问,变量名大小表示公有变量.

结构体定义方法

自定义方法

继承父类方法和属性

package main

import "fmt"

type Father struct{
FirstName string
LastName string
}
func(father Father) Print(){
fmt.Printf("your father's name is:%v $v",father.FirstName,father.LastName)
}
type Son struct{
FirstName string
Father //结构体继承
}

func(son Son) Print(){
fmt.Printf("your name is:%v $v",son.FirstName,son.LastName)
}
func main(){
var son1 = Son{
FirstName:"Jack",
Father: Father{
FirstName:"Sam"
LastName:"Smith"
}
}
son1.Print()
son1.Father.Print()
}

比较好懂在此不再解释