普通结构体
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结构体
待补充。。。
嵌套结构体
待补充。。。
嵌套匿名结构体
待补充。。。
结构体中嵌套接口
待补充。。。
发表回复