朱莉娅:如何使用Int64索引数组?

3
以下代码报错。
ERROR: `setindex!` has no method matching setindex!(::Type{Array{Int32,32}}, ::Int32, ::Int64)

我能做到这个吗?我认为问题在于循环变量的类型不适合用作数组索引。

n = parseint(readline(STDIN))
A = Array{Int32, n}
for i in 1:n-1
    ai = parseint(Int32, readuntil(STDIN, ' '))
    A[i] = ai #The error happens here!
end
A[n] = parseint(Int32, readline(STDIN))
1个回答

4
你的变量 A 的赋值是合法的,但它并不像你想象中那样运作。
A = Array{Int32,n}

julia> typeof(A)
DataType

这表示一个A是代表n维数组的类型。您可能想要的是,A实际上是一个Array{Int32,1}类型的变量,其中包含n个元素。因此,请尝试以下内容:
A = Array(Int32,n);

julia> typeof(A)
Array{Int32,1}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接