Go的类型系统

1、什么是类型系统

  • 类型系统是 一个语言的类型体系结构。
  • 类型系统才是一门编程语言的地基,它的地位至关重要。
  • Go语言的面向对象编程特性从类型系统入手。

2、类型系统包含的内容

  • 基本类型,如byte、int、bool、float等
  • 复合类型,如数组、结构体、指针等
  • 可以 向任意对象的类型(Any类型)
  • 值语义和引用语义
  • 面向对象, 所有具 面向对象特征(比如成员方法)的类型
  • 接口
    类型系统描述的是这些内容在一个语言中如何被关联。

3、值类型&引用类型

Go语言中的大多数类型都基于值语义。

  • 值类型
    • 基本类型,如byte、int、bool、float32、float64和string等
    • 复合类型,如数组(array)、结构体(struct)和 (pointer)等
  • 引用类型
    • 数组切 : 指向数组(array)的一个区间
    • map:极其常见的数据结构,提供键值查询能力
    • channel:执行体(goroutine)间的通信设施
    • 接口(interface):对一组满足某个契约的类型的抽象

4、Go语言传值区别

  • 在于对象大小,如果对象很小,那么直接传值比较好,否则传指针
  • 如果想修改传递对象的值,则传指针,否则传值

你可能感兴趣的:(Go的类型系统)