第5章 Go语言的类型系统

本章主要内容

  • 声明新的用户定义的类型
  • 使用方法,为类型增加新的行为
  • 了解何时使用指针,何时使用值
  • 通过接口实现多态
  • 通过组合来扩展或改变类型
  • 公开或者未公开的标识符

Go语言是一种静态类型的编程语言。这意味着,编译器需要在编译时知晓程序里每个值的类型。如果提前知道类型信息,编译器就可以确保程序合理地使用值。这有助于减少潜在的内存异常和bug,并且使编译器有机会对代码进行一些性能优化,提高执行效率。

值的类型给编译器提供两部分信息:第一部分,需要分配多少内存给这个值(即值的规模);第二部分,这段内存表示什么。对于许多内置类型的情况来说,规模和表示是类型名的一部分。 int64 类型的值需要8字节(64位),表示一个整数值; float32 类型的值需要4字节(32位),表示一个IEEE-754定义的二进制浮点数; bool 类型的值需要1字节(8位),表示布尔值 truefalse

有些类型的内部表示与编译代码的机器的体系结构有关。例如,根据编译所在的机器的体系结构,一个 int 值的大小可能是8字节(64位),也可能是4字节(32位)。还有一些与体系结构相关的类型,如Go语言里的所有引用类型。好在创建和使用这些类型的值的时候,不需要了解这些与体系结构相关的信息。但是,如果编译器不知道这些信息,就无法阻止用户做一些导致程序受损甚至机器故障的事情。

results matching ""

    No results matching ""