Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Julia:用变量声明关键字参数的类型_Arrays_Arguments_Declaration_Julia - Fatal编程技术网

Arrays Julia:用变量声明关键字参数的类型

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

我试图在我的关键字参数中声明一个向量数组的类型,该数组是用户在程序开始时选择的可变维度。当我使用变量来声明维度时,terminal告诉我变量未知。这在sub 0.4中不是问题,因为多维数组可以用一维数组声明。我试过常量,但它们对我也不起作用。有没有一种方法可以避免将数据转储到文本文件并从函数中读取数据

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中声明数组的类型有多有效。