以下代码抱怨
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))
答案 0 :(得分:4)
您对 A 的分配是合法的,但它并不符合您的想法。
A = Array{Int32,n}
julia> typeof(A)
DataType
这声明 A 是表示n维数组的类型。您想要的是, A 可能是包含 n 元素的 Array {Int32,1} 类型的变量。所以请尝试以下方法:
A = Array(Int32,n);
julia> typeof(A)
Array{Int32,1}