我有几个函数以a uint作为输入:
uint
func foo(arg uint) {...} func bar(arg uint) {...} func baz(arg uint) {...}
我有一个循环,其范围都是恒定的uint值
const ( Low = 10 High = 20 )
在以下循环中,我怎么说我要i成为uint?编译器抱怨它是一个int。
i
int
for i := Low; i <= High; i++ { foo(i) bar(i) baz(i) }
我并不是真的想uint(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()不是函数调用,并且当应用于常量和相同大小的(我相信)带符号整数时,它完全在编译时发生。
uint()
另外,尽管我坚持上述内容,但是您可以键入常量。
const ( Low = uint(10) High = uint(20) )
那i := Low也会是一个uint。在大多数情况下,我会坚持使用无类型的常量。
i := Low