ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
* * * * * --: 作者:Fuzz 时间:2018年10 月13日 * * * * * ## 面向对象 1.go语言仅支持封装、不支持继承和多态 2.go语言没有class,只有class ## 结构体创建 ``` package main import "fmt" type treeNode struct { value int left,right *treeNode } func main() { var root treeNode root = treeNode{value:3} root.left = &treeNode{} root.right = &treeNode{5,nil,nil} root.right.left = new(treeNode) } 不论地址还是结构本身,一律使用.来访问成员 ``` ## 构造函数 1. go语言没有构造函数,要实现构造函数可以通过工厂模式 2. go语言可以返回局部变量地址。 3. 局部变量存放于栈,全局则在与堆。 工厂模式:http://www.runoob.com/design-pattern/factory-pattern.html ## 为结构定义方法 func (node treeNode) print(){ fmt.Println(node.value) } node treeNode 值接受者,(除去node为引用类型),treeNode 添加*代表指针接受者 ## 值接受者、指针接受者 1.要改内容必须使用指针接受者 2.结构过大也考虑使用指针接受者 3.一致性如果有指针接受者,最好都是指针接受者,以防混乱 4.值接受者是go语言特有