我有几个函数将 anuint作为输入: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 uintfor i = Low; i <= High; i++ { foo(i) bar(i) baz(i)}
2 回答
www说
TA贡献1775条经验 获得超8个赞
for i := uint(Low); i < High; i++ {
...
}
还要注意,这uint()不是函数调用,当应用于常量和(我相信)相同大小的有符号整数时,完全在编译时发生。
或者,虽然我会坚持上述内容,但您可以输入常量。
const (
Low = uint(10)
High = uint(20)
)
那么i := Low也将是一个uint. 在大多数情况下,我会坚持使用无类型常量。
三国纷争
TA贡献1804条经验 获得超7个赞
for i := uint(Low); i <= High; i++ { //EDIT: cf. larsmans' comment
foo(i)
bar(i)
baz(i)
}
或者定义要输入的常量:
const (
Low uint = 10
High uint = 20
)
...
for i := Low; i <= High; i++ {
foo(i)
bar(i)
baz(i)
}
- 2 回答
- 0 关注
- 218 浏览
添加回答
举报
0/150
提交
取消