golang 基础(17)struct

作者: zidea | 来源:发表于2019-03-19 07:33 被阅读11次

struct

创建 struct

type Person struct {
    name string
    age int
}

通过 type 关键字定义一个 struct ,定义 struct 结构包括哪些属性,并且指定属性的类型

struct 的成员的赋值

p.name= "zidea"

struct 是可以进行嵌套的

type person struct {
    name    string
    age     int
    contact struct {
        phone, city string
    }
}

字面量初始化

也可以通过字面值进行初始化,这是常用的做法,写法类似于JSON的写法

type Person struct {
    name string
    age int
}

p := Person{
        name:"zidea",
        age: 30,
    }

结构体作为参数传递

定义函数接受参数为 Person 注意在 go 默认是传值的

func print(p Person){
    fmt.Println(p.name)
    fmt.Println(p.age)
}
print(p)

结构体指针

如果要在函数 print 中修改作为参数传入的 person 对象,就需要传地址而非传值

 p := &Person{
        name:"zidea",
        age: 30,
    }
func print(p *Person){
    fmt.Println(p.name)
    fmt.Println(p.age)
}

匿名结构体

  a := &struct{
        name string
        age int
    }{
        name:"zidea",
        age: 30,
    }

结构体的继承

go 语言中并没有面向对象语言的继承关系

type human struct {
    sex int
}

type teacher struct {
    human
    name string
    age  int
}

type student struct {
    human
    name string
    age  int
}

相关文章

网友评论

    本文标题:golang 基础(17)struct

    本文链接:https://www.haomeiwen.com/subject/nmjmmqtx.html