August 05, 2021
On 8/4/21 7:21 PM, someone wrote:

> somewhere I read
> Ali saying there's nothing wrong implementing properties the old-way via
> functions because @property has nothing special about it but I can't
> state where I read what I am stating so take it with a grain of salt.

As I understand it, @property is discouraged by the community. That's what I say here:

  http://ddili.org/ders/d.en/property.html#ix_property.@property

Quoting the whole section:

<quote>
@property

Property functions may be defined with the @property attribute as well. However, as a best practice, the use of this attribute is discouraged.

import std.stdio;

struct Foo {
    @property int a() const {
        return 42;
    }

    int b() const {    // ← Defined without @property
        return 42;
    }
}

void main() {
    auto f = Foo();

    writeln(typeof(f.a).stringof);
    writeln(typeof(f.b).stringof);
}

The only effect of the @property attribute is when determining the type of an expression that could syntactically be a property function call. As seen in the output below, the types of the expressions f.a and f.b are different:

int            ← The type of the expression f.a (the return type)
const int()    ← The type of the member function Foo.b
</quote>

Ali

P.S. I found that section by searching for "property" on the Index page:

  http://ddili.org/ders/d.en/ix.html

The Index page is linked from the title page (aka index.html) as "The Index Section". (Too many indexes! :) )

  http://ddili.org/ders/d.en/index.html


August 05, 2021
On Thursday, 5 August 2021 at 15:23:24 UTC, Ali Çehreli wrote:

> As I understand it, @property is discouraged by the community. That's what I say here:
>
>   http://ddili.org/ders/d.en/property.html#ix_property.@property

I knew I have read it somewhere ... thanks for the clarification Ali !

1 2
Next ›   Last »