在不初始化所有字段的情况下声明复合类型的实例

时间:2018-08-26 03:41:19

标签: struct types julia

所以我试图创建一个结构实例:

if x in users:

现在我知道除最后一个字段以外的所有字段的值。我需要使用已知值初始化结构的实例,但是对于最后一个字段,我必须调用另一个函数,在该函数中要生成数据,然后将其存储在实例的最后一个字段中。有没有办法在朱莉娅(Julia)中做到这一点?

我指的是教程herehere,但是我想在两个地方都一次实例化了实例的所有字段。

谢谢!

1 个答案:

答案 0 :(得分:1)

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,访问时会出错。但是您可以稍后进行设置。