vala - 需要 vala 中的 setter/getter

标签 vala design-by-contract

有什么方法可以在 Vala 中执行以下操作吗?

public int year {
    get { return this.year; }
    set requires (1500 < value && value < 2050) { this.year = value; }
}

最佳答案

不,但“requires”实际上只是 GLib.return_if_fail 的语法糖。和 GLib.return_val_if_fail ,所以你可以这样做:

public int year {
    get { return this.year; }
    set {
        GLib.return_if_fail (1500 < value && value < 2050);
        this.year = value;
    }
}

关于vala - 需要 vala 中的 setter/getter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13149535/

相关文章:

language-agnostic - 契约(Contract)设计和测试驱动开发

ubuntu - 编译 Synapse 项目时出错

weak-references - vala 中 'weak' 和 'unowned' 引用之间的区别?

lambda - Valas 闭包如何映射到 Genie?

python - 单元测试中如何强调对输入数据的限制?

php - 用于单元测试或静态分析的可选 PHP 类型提示/检查?

c++ - 在 C++ 中检查不变量

vala - 转换为 int 与 Math.floor

c++ - 自动引用计数系统中的赋值是线程安全的吗?

java - 在 Android 中使用 javaagent