乐趣区

golang-结构体

普通结构体

1.public

type Flower struct {
    Name string
    Color string
    Category string
}

外部包可以直接引用和赋值
2.private

type leaf struct {
    count int
    size int
}

外部包不能直接引用
需要定义 public 函数提供操作,例如

func (l *leaf) SetColor(color string) {l.color = color}

3.public 结构体里面有 private

type Flower struct {
    Name string
    Color string
    Category string
}

这种情况下,只能通过 public 的函数或者方法来操作内部的 private 属性
4.private 结构体里面有 public 属性

type leaf struct {
    color string
    size int
    Count int
}

这种也是允许的,例如:

func NewLeaf(color string, size, count int) *leaf{var l = leaf{color, size, count}
    return &l
}

在另一个包中引用这些结构体

func main() {leaf := plant.NewLeaf("green", 5, 10)
    fmt.Println(leaf)
    leaf.Count = 5
    fmt.Println(leaf)
}

输出:

&{green 5 10}
&{green 5 5}

很少看到这么使用

json/xml 结构体

待补充。。。

嵌套结构体

待补充。。。

嵌套匿名结构体

待补充。。。

结构体中嵌套接口

待补充。。。

退出移动版