gpt4 book ai didi

type-conversion - Go - for 循环条件中的 uint32(不匹配的类型 int 和 uint32)

转载 作者:IT老高 更新时间:2023-10-28 13:04:14 26 4
gpt4 key购买 nike

为了类型严格,我有时将我的尺寸存储为 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 {

第一次是低效的,因为我在每次迭代中都进行转换,而第二次则不那么优雅。有没有更好的方法来做到这一点?

最佳答案

你可以这样做:

for i := uint32(0); i < size; {
//whatever
}

一般来说,我不建议使用无符号整数,即使大小永远不会是负数。我不知道有什么好处。我只在故意溢出时使用无符号整数。

关于type-conversion - Go - for 循环条件中的 uint32(不匹配的类型 int 和 uint32),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13383951/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com