我正在研究Go中的数字类型。我想使用uint64文字。这在围棋中可能吗?
以下是我想如何使用uint64文字的示例:
for i := 2; i <= k; i += 1 { // I want i to be a uint64
...
}
您可以将整数文本强制转换为uint64
。
for i := uint64(1); i <= k; i++ {
// do something
}
或者,您可以在for
循环之外初始化i
,但它的作用域大于循环本身。
var i uint64
for i = 1; i <= k; i++ {
// note the `=` instead of the `:=`
}
// i still exists and is now k+1
让我们来看看常量的规范:https://go.dev/ref/spec#Constants.这就是他们所说的:
常量可以通过常量声明或转换显式地给定类型,或者在变量声明或赋值中使用时,或在表达式中用作操作数时,可以通过隐式地给定类型。
和:
非类型化常量具有默认类型,该类型是在需要类型化值的上下文中(例如,在没有显式类型的短变量声明(如
i := 0
)中)将常量隐式转换为的类型。非类型化常量的默认类型分别为bool
、rune
、int
、float64
、complex128
或string
,具体取决于它是布尔常量、符文常量、整数常量、浮点常量、复数常量还是字符串常量。
基于这些语句和代码的上下文,初始化不在默认类型列表中的变量(如uint64
)的最佳方法是:
for i := uint64(2); i <= k; i++ {
...
}
您必须显式地将变量声明为该类型。int文字的类型为int
https://play.golang.org/p/OgaZzmpLfB需要类似CCD_ 13的东西。在你的例子中,你也必须改变你的任务,这样做;
var i uint64
for i = 2; i <= k; i += 1 { // I want i to be a uint64
...
}