爲簡單起見,假設我有以下函數定義:奇怪的行爲斷言
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