1

我有一个 int 的 genericArray

[indent=4]

init
    var a = new GenericArray of int
    for var i = 1 to 3 do a.add (i)
    say: Func of int = def (v)
        stdout.printf ("%d ", v)

    var end = a.length - 1

这些都输出1 2 3

for var i = 0 to end do stdout.printf ("%d ", a[i])
for var i = 0 to end do stdout.printf ("%d ", a.data[i])
a.foreach (say)

但是这个输出是1 0 2

为什么输出不是1 2 3

for val in a.data do stdout.printf ("%d ", val)

如果我设置数据字段:

var a = new GenericArray of int
a.data = {1, 2, 3}

下面:它将输出1 2 3

for val in a.data do stdout.printf ("%d ", val)

一切都很好?

但是这些都输出1 3 0

for var i = 0 to end do stdout.printf ("%d ", a[i])
for var i = 0 to end do stdout.printf ("%d ", a.data[i])
a.foreach (say)

为什么它的行为如此奇怪?

4

0 回答 0