清水泥沙

golang基础(27.类型系统)

Go 语言面向对象编程设计得简洁而优雅。简洁之处在于,Go 语言并没有沿袭传统面向对象编程中的诸多概念,比如类的继承、接口的实现、构造函数和析构函数、隐藏的 this 指针等,也没有 public、protected、private 之类的可见性修饰符。顾名思义,类型系统是指一个语言的类型体系结构。一个典型的类型系统通常包含如下基本内容:

  - 基础的数据类型,如byte,int,bool,float,string等等。
  - 复合类型,如数组,切片,字典,结构体,指针。
  - 可以指向任意对象的类型
  - 值语义和引用语义
  - 面向对象,具备面向对象的特征
  - 接口

Go 语言中的大多数类型都是值语义,并且都可以包含对应的操作方法。在需要的时候,你可以给任何类型(包括内置类型)增加新方法。而在实现某个接口时,无需从该接口继承(事实上,Go 语言根本就不支持面向对象思想中的继承、实现语法),只需要实现该接口要求的所有方法即可。任何类型都可以被 Any 类型引用。在 Go 语言中,Any 类型就是空接口,即 interface{}。