Я совершенно не знаком с Джулией (только что началось ранее сегодня), так что простите меня, если это глупый вопрос, но, несмотря на любящий язык, я не нахожу много Большая отладочная помощь там.Почему мой конструктор типа не распознается
В принципе, я просто хочу определить альтернативный конструктор для метода, который активируется при вводе массива, содержащего любой тип 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})
Switching альтернативный конструктор от Array{Integer}
до Array{Int64}
решает проблему м, как можно было бы предположить, но я не хочу ограничивать использование так далеко.
Любая идея о том, как это сделать? Также будет высоко оценен любой обзор кода. Я предполагаю, что этот код не очень «юлианский» (это что-то?) И хотел бы, чтобы указатели сделали его более удобным для использования другими.
Одним словом, инвариантность: https://groups.google.com/forum/#!topic/julia-dev/slxzNLXJdlY. Если кто-то еще не избил меня, я могу написать это как ответ завтра. – StefanKarpinski