我有一些函数将 uint
作为它们的输入:
func foo(arg uint) {...}
func bar(arg uint) {...}
func baz(arg uint) {...}
我有一个循环,其限制都是常量 uint
值
const (
Low = 10
High = 20
)
在下面的循环中,我怎么能说我希望 i
成为一个 uint
?编译器提示它是 int
。
for i := Low; i <= High; i++ {
foo(i)
bar(i)
baz(i)
}
我真的不想在每次函数调用时都调用 uint(i)
,执行以下操作是正确的,但让我觉得很脏:
var i uint
for i = Low; i <= High; i++ {
foo(i)
bar(i)
baz(i)
}
最佳答案
for i := uint(Low); i < High; i++ {
...
}
另请注意,uint()
不是函数调用,当应用于常量和(我相信)相同大小的带符号整数时,完全在编译时发生。
或者,尽管我坚持使用上述方法,但您可以键入常量。
const (
Low = uint(10)
High = uint(20)
)
那么 i := Low
也将是一个 uint
。在大多数情况下,我会坚持使用无类型常量。
关于go - 在 Go 中,如何自动将循环索引强制转换为 uint?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15928071/