Vala 中的属性集与集合构造

Properties set vs. set construct in Vala

public int val { get; set construct; }
public int val { get; set; }

两者都可以'publicly'读取,'publicly'写入,在构造函数中写入...两者是否相等?

这跟GObject风格构造有关

当指定 construct 时,使用 G_PARAM_CONSTRUCT ParamFlag 安装参数。

我还没有深入研究属性,但据我目前的理解,这意味着 属性 是在设置此标志时在构建过程的早期设置的。

还有一个 G_PARAM_CONSTRUCT_ONLY 标志,允许 属性 在构造时 设置。不过我不知道 Vala 是否支持这个。

在 GObject 手册的 Object Construction topic 中有提到。