码迷,mamicode.com
首页 > 其他好文 > 详细

第三章 面向对象编程 3.1类型系统

时间:2017-07-06 14:28:24      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:系统   []   通过   存在   面向对象   参数传递   函数   interface   接口   





3.1.2 值语义与引用语义

值语义和引用语义的定义就是 复制后与之前的对象无关的对象叫做值语义
无法复制或者复制以后与原来对象存在关联的对象称为引用语义

C语言的数组在做函数参数传递的时候就是作为引用语义
但是作为结构体里面定义的时候就是值传递

但是go语言的里面数组都是值传递

go也存在四种引用语义的类型
1.切片数组
你可以把[]T看作为,其实就是一个指向数组的指针
  1. type slice struct{
  2. first *T
  3. len int
  4. cap int
  5. }

2.map
map本质上是一个字典指针 可以将map[K]V表示为
  1. type Map_K_V struct{
  2. //...
  3. }
  4. type map[K]V struct{
  5. impl *Map_K_V
  6. }
3. channel 执行体之间的通信设施

3.接口
  1. type interface struct{
  2. data *void
  3.     itab *Itab
  4. }


3.4 可见性

go的可见性是通过符号开头大小写来决定的 这就决定了 你无法用linux风格去编程呢

第三章 面向对象编程 3.1类型系统

标签:系统   []   通过   存在   面向对象   参数传递   函数   interface   接口   

原文地址:http://www.cnblogs.com/cjxltd/p/7125786.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!