我对以下观察感到困惑。一方面,这有效:
for i in 5..10:
echo i
但是一旦我将切片存储在一个变量中,我就不能再对其进行迭代,即,这会失败:
var slice = 5..10
for i in slice:
echo i
错误是type mismatch: got (Slice[system.int])
,显然没有system.items
迭代器的重载签名Slice[T]
。这就提出了以下问题:
- 为什么它在第一种情况下完全有效?
- 在第二种情况下是否有一种解决方法来遍历切片?