返回介绍

第 5 章 Go 语言的类型系统

发布于 2024-10-11 12:38:59 字数 797 浏览 0 评论 0 收藏 0

本章主要内容

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

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

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文