型の厳密さのために、サイズが負になることができない場合、サイズを uint として保存することがあります。for ループで使用すると、次のようになります。
var size uint32 = 8
for 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)
for ループを書き直して、次のような型を指定します。
for var i uint32 = 0; i < size; {
次のコンパイラ エラーが発生します。syntax error: var declaration not allowed in for initializer
これらのエラーを回避する唯一の方法は次のとおりです。
for i := 0; uint32(i) < size; {
また
var i uint32 = 0
for i < size {
私はすべての反復でキャストしているため、最初のものは非効率的であり、2番目のものはエレガントではありません。これを行うより良い方法はありますか?