首页 > 代码库 > 第三章 面向对象编程 3.1类型系统
第三章 面向对象编程 3.1类型系统
3.1.2 值语义与引用语义
值语义和引用语义的定义就是 复制后与之前的对象无关的对象叫做值语义
无法复制或者复制以后与原来对象存在关联的对象称为引用语义
C语言的数组在做函数参数传递的时候就是作为引用语义
但是作为结构体里面定义的时候就是值传递
但是go语言的里面数组都是值传递
go也存在四种引用语义的类型
1.切片数组
你可以把[]T看作为,其实就是一个指向数组的指针
type slice struct{
first *T
len int
cap int
}
2.map
map本质上是一个字典指针 可以将map[K]V表示为
type Map_K_V struct{
//...
}
type map[K]V struct{
impl *Map_K_V
}
3. channel 执行体之间的通信设施
3.接口
type interface struct{
data *void
itab *Itab
}
3.4 可见性
go的可见性是通过符号开头大小写来决定的 这就决定了 你无法用linux风格去编程呢
第三章 面向对象编程 3.1类型系统
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。