Go语言仅支持封装,不支持继承/多态。
1. Go 结构体 (struct)
结构体就是一个复杂的数据类型,里面可以包含字段,也可以嵌套其他结构体
Go 中没有 class,而是使用 struct 。
结构体命名一般都是用CamelCase,首字母大写表示public,首字母小写表示private,和go变量定义一样。
type TreeNode struct {
value int
left, rignt *TreeNode
}
go语言采用的是目录分包,同一个目录下是一个包,在文件开头使用package声明。对同一个结构体的方法声名可以在不同的文件中,但必须是在同一个包下面。
go语言建议结构体的名称不要重复包名,同时为了能在其他包访问Node结构体,将上面的TreeNode定义修改如下:
package tree
type Node struct {
Value int
Left, Right *Node
}
定义go结构体的方法时,和其他语言不同的是,他需要手动自定函数方法的接受者,可以是指也可以是指针。但是只用者并不需要关心接受者是什么值还是指针,统一调用。
//值