Arrays Julia:用变量声明关键字参数的类型
我试图在我的关键字参数中声明一个向量数组的类型,该数组是用户在程序开始时选择的可变维度。当我使用变量来声明维度时,terminal告诉我变量未知。这在sub 0.4中不是问题,因为多维数组可以用一维数组声明。我试过常量,但它们对我也不起作用。有没有一种方法可以避免将数据转储到文本文件并从函数中读取数据Arrays Julia:用变量声明关键字参数的类型,arrays,arguments,declaration,julia,Arrays,Arguments,Declaration,Julia,我试图在我的关键字参数中声明一个向量数组的类型,该数组是用户在程序开始时选择的可变维度。当我使用变量来声明维度时,terminal告诉我变量未知。这在sub 0.4中不是问题,因为多维数组可以用一维数组声明。我试过常量,但它们对我也不起作用。有没有一种方法可以避免将数据转储到文本文件并从函数中读取数据 function dataDoer(len,preConns::Array{Array{Int64,1},(len)}) println("do stuff here") end fu
function dataDoer(len,preConns::Array{Array{Int64,1},(len)})
println("do stuff here")
end
function main()
local netDim = (2,2)
local preConns::Array{Array{Int64,1},length(netDim)} = fill!(Array(Array{Int64,1},netDim),Int64[])
dataDoer(length(netDim),preConns)
end
main()
ERROR:LoadError:UndefVarError:len未定义我想看看数组是如何实现的,因为它们对这里发生的事情有一些帮助
在
数组{T,N}
中,N
不是指数组的长度或大小,而是指维度<代码>数组实际上可以具有可变长度,并可选择推送代码>,追加代码>,和拼接代码>元素输入和输出。要获得数组的长度,只需执行length(A)
。希望这有助于澄清 您必须将len
设置为类型参数。(我在下面将其重命名为N
,这是此类参数的常见做法)
function dataDoer{N}(preConns::Array{Array{Int64,1},N})
println("do stuff here")
end
请注意,N
不再是函数的参数,而是从precons
的类型推断出来的。如果查看我的代码,我向函数传递的是维度,而不是其大小。我将编辑我的问题,使之更清楚。即便如此,在0.4中,您需要适当的维度来声明数组的类型,这让我好奇在0.3中声明数组的类型有多有效。