为简单起见,假设我有以下函数定义:奇怪的行为断言
function returnVectorOrMatrix()
vals = Array(Array{Float32,1}, 10) # vector in this definition
return vals::Array{Array{Float32},1}
end
arr = returnVectorOrMatrix()
哪位给我很大的惊喜生成以下错误:
ERROR: type: typeassert: expected Array{Array{Float32,N},1},
got Array{Array{Float32,1},1}
有没有人有一个很好的逻辑推理为什么会发生这种情况/是以这种方式设计的? 因为Array{Array{Float32,1},1}
是Array{Array{Float32,N},1}
与N = 1
所以鉴于Julia
是多派遣我希望这样的功能很好地工作只是一个特例(和似乎是合乎逻辑/直觉以及)
感谢您解决这个问题!欣赏! – aberdysh