下面的代码片段工作正常.
在这种情况下,"int32"是什么?一个功能?
我知道有一个名为"int32"的类型
这可能是一个愚蠢的问题.我刚刚完成了A Tour of Go但我找不到答案.(我可能会遗漏一些东西.)
package main
import "fmt"
func main() {
var number = int32(5)
fmt.Println(number) //5
}
Run Code Online (Sandbox Code Playgroud)
Von*_*onC 10
在表达式或赋值中混合使用不同的数字类型时,需要进行转换.例如,int32和int的类型不同,即使它们在特定体系结构上可能具有相同的大小.
由于您执行变量声明,因此需要指定' 5' 的类型.
如提到的另一种选择,rightfold的评论是:var number int32 = 5
(相对于一个短变量声明等number := 5)
另见Go FAQ:
C中数字类型之间自动转换的便利性被它引起的混乱所抵消.
何时表达式未签名?价值有多大?它溢出了吗?结果是否可移植,与其执行的机器无关?它还使编译器复杂化; "通常的算术转换"不容易实现,并且跨架构不一致.
出于可移植性的原因,我们决定以代码中的一些显式转换为代价,使事情变得清晰明了.然而,Go-any精度值中常量的定义没有签名和大小注释 - 很大程度上改善了问题.
相关的细节是,与C 不同,即使是64位类型
int,int64也是不同的类型int.
的int类型是通用的; 如果你关心整数持有多少位,Go鼓励你明确.
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |