golang 结构体
2010 年 11 月 30 日
普通结构体
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结构体
待补充。。。
嵌套结构体
待补充。。。
嵌套匿名结构体
待补充。。。
结构体中嵌套接口
待补充。。。
欢迎关注我们的微信公众号,每天学习Go知识