编辑这是由于我的一个愚蠢的错误,但这个问题值得保留,以防其他人这样做。
我希望这可行:
var xs []uint8
var x uint8
for x = range xs {
}
但我得到了错误:
cannot assign type int to x (type uint8) in range
即(据我所知)range
,即使它在 的切片上运行uint8
,它也试图int
用作迭代值。
我查看了语言规范,相关位:
Range expression 1st value 2nd value (if 2nd variable is present)
array or slice a [n]E, *[n]E, or []E index i int a[i] E
所以我希望它是E
“参数化类型”*,在这种情况下uint8
不是int
。
我是否抓住了棍子的错误一端?是否有一些我错过的文档?uint8
或者我真的不能用uint8
变量迭代切片吗?
*我知道它不是真正的通用参数化类型。