为什么在D中使用@property?

Ral*_*zky 7 d properties

我试着通过尝试

struct PropertyTest
{
    @property int x() { return val; }
    @property void x( int newVal ) { val = newVal; }

    void test()
    {
        int j;
        j = x;
        x = 5;
    }

private:
    int val;
}
Run Code Online (Sandbox Code Playgroud)

当我离开时完全一样@property.一切都很好.那么将函数声明@property为什么意义呢?

顺便说一下,我正在使用dmd2编译器.

eco*_*eco 9

他们没有工作的原因@property是因为@property在他们允许属性方法语法后添加了.添加-property到DMD命令行会强制使用@property注释.出于向后兼容性原因,它不是默认设置.有一天它会成为默认(或者他们说),所以最好编译-property以确保你正确地注释.