我有几个函数uint
作为他们的输入:
func foo(arg uint) {...}
func bar(arg uint) {...}
func baz(arg uint) {...}
Run Code Online (Sandbox Code Playgroud)
我有一个循环,其限制都是常uint
量值
const (
Low = 10
High = 20
)
Run Code Online (Sandbox Code Playgroud)
在接下来的循环中,我怎么能说我想i
成为一个uint
?编译器抱怨它是一个int
.
for i := Low; i <= High; i++ {
foo(i)
bar(i)
baz(i)
}
Run Code Online (Sandbox Code Playgroud)
我真的不想调用uint(i)
每个函数调用,并且执行以下操作是正确的,但让我觉得很脏:
var i uint
for i = Low; i <= High; i++ {
foo(i)
bar(i)
baz(i)
}
Run Code Online (Sandbox Code Playgroud)
cth*_*m06 10
for i := uint(Low); i < High; i++ {
...
}
Run Code Online (Sandbox Code Playgroud)
还要注意,这uint()
不是函数调用,当应用于常量和(我相信)相同大小的有符号整数时,完全在编译时发生.
或者,尽管我坚持使用上述内容,但您可以键入常量.
const (
Low = uint(10)
High = uint(20)
)
Run Code Online (Sandbox Code Playgroud)
那么i := Low
也将是一个uint
.在大多数情况下,我会坚持使用无类型常量.
for i := uint(Low); i <= High; i++ { //EDIT: cf. larsmans' comment
foo(i)
bar(i)
baz(i)
}
Run Code Online (Sandbox Code Playgroud)
或者定义要键入的常量:
const (
Low uint = 10
High uint = 20
)
...
for i := Low; i <= High; i++ {
foo(i)
bar(i)
baz(i)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
140 次 |
最近记录: |