为了严格起见,当一个大小不能是负数时,我有时会将我的大小存储为uint.在f或循环中使用时,我希望它看起来如下所示:
var size uint32 = 8
f或 i := 0; i < size; {
n := //doesn't matter how how this value is determined
i += n
}
但是,我收到以下错误消息:invalid operation: i < size (mismatched types int and uint32)
重写f或循环以指定如下类型:
f或 var i uint32 = 0; i < size; {
产生此编译器错误:syntax err或: var declaration not allowed in f或 initializer
解决这些错误的唯一方法是:
f或 i := 0; uint32(i) < size; {
或
var i uint32 = 0
f或 i < size {
第一次是低效的,因为我在每一次迭代中都使用,而第二次则不那么优雅.有更好的方法吗?