golang 类型本质

  在声明一个新类型之后,声明一个该类型的方法之前需要先回答一个问题:这个类型的本质是什么。如果这个类型增加或者删除某个值,是要创建新值还是要更改当前的值?如果是要创建一个新值,该类型的方法就是使用值传递者。如果是修改当前的值就使用指针接受者这个答案会影响程序内部传递这个类型的值得方式:是按照值传递还是按照指针传递。保持传递的一致性很重要。这个背后的原则是,不要只关注某个地方是如何处理的这个值,而是要关注这个值得(本质是什么)?。

5.3.1内置类型

内置类型是由语言提供的一组类型。我们已经见过这些类型,分别是数值类型,字符串类型和布尔类型。这些类型本质上都是(原始的类型)?。因此党对这些值进行增加或者删除的时候,会创建一个新的值。基于这个结论把这些类型的值传递给方法或者函数时,应该传递一个(对应的值得副本)?。

5.3.2引用类型

go语言里的类型有一下几个:切片、映射、通道、接口和函数类型。当声明上述类型的变量的时候,创建的变量被称作(标头值)?。从技术细节上说(字符串也是一种引用类型)?。每个引用类型创建的标头值是一个包含指向底层数据结构的指针。每个引用类型还包括一组特殊的字段,(用于管理底层数据结构)?{管理方式}。因为标头值是为复制而设计的,所以永远不需要共享一个引用类型的值。标头值包含一个指针,因此通过复制来传递一个引用类型的值得副本,本质上就是在共享底层数据。

5.3.3

结构类型可以用来描述一组数据值,这组值的本质既可以是(原始的,也可以是非原始的)?。如果决定在某写东西需要删除或者添加某个接口类型的值时该结构的值不应该被改变,那么需要遵守之前提到的内置类型和引用类型的规范。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,544评论 1 51
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,080评论 19 139
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,272评论 0 4
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,886评论 25 709
  • 关于“择一城终老,遇一人白首”的出处说法不一。一种说法是源于孔子语录,另一种说法是源于冯骥才的文章。而我偏爱孔子语...
    once从前慢阅读 779评论 2 0