Я хочу сгенерировать Dict со значениями undef, чтобы позже я мог перебрать ключи и ввести правильные значения. Я могу инициализировать такой Dict, используя конкретные типы, следующим образом, и все это прекрасно работает:
currencies = ["USD", "AUD", "GBP"]
struct example
num::Float64
end
undef_array = Array{example}(undef,3)
Dict{String,example}(zip(currencies, undef_array))
Когда моя структура имеет абстрактный тип, я все равно могу генерировать массив undef, но не могу создать dict. Я получаю сообщение об ошибке «UndefRefError: доступ к неопределенной ссылке»
abstract type abstract_num end
struct example2
num::abstract_num
end
undef_array = Array{example2}(undef,3)
Dict{String,example2}(zip(currencies, undef_array))
Хотя можно создать такой Dict с конкретным массивом:
struct numnum <: abstract_num
num::Float64
end
def_array = [example2(numnum(5.0)), example2(numnum(6.0)), example2(numnum(4.5))]
Dict{String,example2}(zip(currencies, def_array))
Вопрос
У меня вопрос: возможно ли сгенерировать Dict со значениями undef типа, который опирается на абстрактный тип? Возможно ли, что является лучшим способом сделать это?