返回介绍

常量

发布于 2024-10-12 12:51:48 字数 1275 浏览 0 评论 0 收藏 0

常量分为:布尔型,rune 型,整型,浮点型,复数型,字符串型。其中 rune,整型,浮点型,复数型统称为数字常量。

常量的值可以表示为一个 rune 字面量,整数字面量,浮点数字面量,虚数字面量,字符串字面量,表示常量的标识符,常量表达式,一个转换结果为常量的类型转换,和一些返回值为常量的内置函数(接受任何值的 unsafe.Sizeof ,接受部分表达式的 caplen ,接受虚数常量的 realimag ,接受数字常量的 complex )。布尔类型的值为预定义常量 truefalse ,预定义的标识符 iota 表示一个整型常量。

一般情况下复数常量是常量表达式的一种形式。会在常量表达式章节详细讨论。

数字常量可以表示任意精度的确定值而且不会溢出。因此,没有常量可以表示非 0,无穷大和非数字值。

常量可以指定类型也可以不指定类型。字面值常量, truefalseiota ,和只包含无类型常量操作的常量表达式是无类型的。

常量可以通过常量声明和转换时显式的指定具体类型,也可以隐式的在变量声明、赋值或作为表达式操作元时隐式的指定具体类型。如果常量的值和他的类型不匹配,会报错。

无类型常量由一个默认的类型,这个类型会根据使用常量时的上下文进行隐式转换。例如:短变量声明 i := 0 没有指定 i 的类型。无类型常量的默认类型可以是: boolruneintfloat64complex128 或者 string ,具体选择哪种类型由常量的值决定。

实现限制:虽然数字常量在 Go 中是任意精度,不过编译器在实现时会在内部限制精度。这意味着每个编译器实现都要:

  • 至少保证整形常量有 256 位

  • 浮点数常量(包括复数常量)都要保证至少 256 位的主体部分和至少 16 位的有符号指数部分

  • 如果不能表示给定整数的精度抛出错误

  • 如果浮点数或复数溢出抛出错误

  • 如果由于精度限制不能表示浮点数或者复数进行舍入

这些要求同时作用于字面量常量额和常量表达式的结果。

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

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

发布评论

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