美文网首页
《日子》golang-结构struct

《日子》golang-结构struct

作者: 战神汤姆 | 来源:发表于2016-11-05 15:44 被阅读0次
    结构struct

    -Go中的struct与C中的struct非常相似,并且Go没有class
    -使用type<Name> struct{}定义结构,名称遵循可见性规则 
    -支持指向自身的指针类型成员
    -支持匿名结构,可用作成员或定义成员变量
    -匿名结构也可以用于map的值
    -可以使用字面值对结构进行初始化
    -允许直接通过指针来读写结构成员
    -相同类型的成员可进行直接拷贝赋值
    -支持 == 与 != 比较运算符,但不支持 > 或 <
    -支持匿名字段,本质上是定义了以某个类型名为名称的字段
    -嵌入结构作为匿名字段看起来像继承,但不是继承
    -可以使用匿名字段指针

    struct定义

    <code>
    package main
    import (
    "fmt"
    )
    type person struct {
    Name string
    Age int
    }
    func main() {
    a := person{}
    a.Name = "tom"
    a.Age = 18
    fmt.Println(a)
    }
    </code>

    struct 字面赋值

    <code>
    a := person{
    Name: "luo",
    Age: 18,
    }
    </code>

    struct指针

    <code>
    package main
    import (
    "fmt"
    )
    type person struct {
    Name string
    Age int
    }
    func main() {
    a := &person{
    Name: "luo",
    Age: 18,
    }
    a.Name = "tom"
    fmt.Println(a)
    A(a)
    fmt.Println(a)
    }
    func A(per *person) {
    per.Age = 13
    fmt.Println("A", per)
    }
    </code>

    struct匿名

    <code>
    package main
    import (
    "fmt"
    )
    func main() {
    a := &struct {
    Name string
    Age int
    }{
    Name: "tom",
    Age: 19,
    }
    fmt.Println(a)
    }
    </code>

    struct嵌套

    <code>
    package main
    import (
    "fmt"
    )
    type person struct {
    Name string
    Age int
    Contact struct {
    Phone, City string
    }
    }
    func main() {
    a := person{Name: "joe", Age: 19}
    a.Contact.Phone = "13888888888"
    a.Contact.City = "gz"
    fmt.Println(a)
    }
    </code>

    struct字段匿名

    <code>
    package main
    import (
    "fmt"
    )
    type person struct {
    string
    int
    }
    func main() {
    a := person{"joe", 19}
    fmt.Println(a)
    }
    </code>

    struct 嵌入struct

    <code>
    package main
    import (
    "fmt"
    )
    type human struct {
    Sex int
    }
    type person struct {
    human
    Name string
    Age int
    }
    func main() {
    a := person{Name: "tom", Age: 19, human: human{Sex: 1}}
    a.Sex = 0
    fmt.Println(a)
    }
    </code>

    相关文章

      网友评论

          本文标题:《日子》golang-结构struct

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