Julia:使用Int64索引一个数组?

时间:2014-11-19 23:34:20

标签: julia

以下代码抱怨

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 个答案:

答案 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}