Объявление экземпляра составного типа без инициализации всех полей - PullRequest
0 голосов
/ 26 августа 2018

Итак, я пытаюсь создать экземпляр структуры:

struct keypoint
    x
    y
    scale
    angle
    Vector{Any}(VecLength)
end

Теперь я знаю значения всех полей, кроме последнего.Мне нужно инициализировать экземпляр структуры с известными значениями, но для последнего поля мне нужно вызвать другую функцию, где данные должны быть сгенерированы, а затем сохранены в последнем поле экземпляра.Есть ли способ сделать это в Джулии?

Я имею в виду учебники здесь и здесь , но я думаю, в обоих местах все поля экземплярабыли инициализированы за один раз.

Спасибо!

1 Ответ

0 голосов
/ 26 августа 2018
mutable struct keypoint
    x
    y
    scale
    angle
    keypoint(x,y,scale) = new(x,y,scale)
end
a = keypoint(1,1.0,2.0) # keypoint(1, 1.0, 2.0, #undef)

Обратите внимание, что если вы затем попытаетесь получить доступ к a.angle, вы получите

ERROR: UndefRefError: access to undefined reference
Stacktrace:
 [1] getproperty(::Any, ::Symbol) at .\sysimg.jl:18

, поэтому, если вы отключите его, вы получите undef с ошибками при доступе.Но вы можете установить его позже.

...