3
我對朱莉婭完全陌生(今天早些時候纔開始),所以如果這是一個愚蠢的問題,請原諒我,但儘管愛上這門語言,但我沒有發現很多偉大的調試幫助那裏。爲什麼我的類型構造函數不被識別
基本上我只想定義一個方法的替代構造函數,該方法將在包含任何類型的Integer(int32,uint8等)的數組的輸入上激活。
我想這將是比較簡單寫道:
type MyType
weight_matrices::Array{Array{FloatingPoint}}
MyType(layer_sizes::Array{Integer}) =
new([
rand(layer_sizes[i], layer_sizes[i+1]) for i in [1:length(layer_sizes)-1]
])
end
但是當我試圖使用它:
test = MyType([1,2,1])
我得到的錯誤:
ERROR: no method MyType(Array{Int64, 1})
切換從Array{Integer}
到Array{Int64}
的替代構造函數解決了問題如人們所假設的那樣,但我不想限制這種用法。
任何想法如何做到這一點?任何代碼審查也將非常感激。我認爲這個代碼不是很「朱利安」(這是什麼東西?),並且會喜歡使其他人更容易使用的指針。
總之,不變性:https://groups.google.com/forum/#!topic/julia-dev/slxzNLXJdlY。如果別人沒有毆打我,我可以明天寫出來作爲答案。 – StefanKarpinski