Sealed classes - would you want them in D? (v2)
Gheorghe Gabriel
knoppy273 at live.com
Fri May 18 12:26:14 UTC 2018
On Friday, 18 May 2018 at 12:16:55 UTC, aliak wrote:
> On Friday, 18 May 2018 at 12:00:58 UTC, Gheorghe Gabriel wrote:
>> On Thursday, 17 May 2018 at 02:32:07 UTC, KingJoffrey wrote:
>>> [...]
>>
>> I think this code has cleaner sintax:
>>
>> class A {
>> private int x;
>> sealed int y;
>> }
>> void main() {
>> A a = new A();
>> a.x = 7; // ok, it's private to module
>> a.y = 3; // error, it's sealed to class
>> }
>
> You may not need a new word at all. You can also enhance
> private to take arguments. Package already does this. You can
> give private a symbol list that says which symbols this is
> private for. So:
>
> class A {
> private int x;
> private(A) int y;
> }
> void main() {
> A a = new A();
> a.x = 7; // ok, it's private to module
> a.y = 3; // error, it's sealed to class
> }
>
> Cheers,
> - Ali
Good idea. Or: private(this)
Because using "this" it is easier tu put this code in a mixin for
multiple classes.
Example:
string var = "private(this) var;";
class A {
mixin(var);
}
class B {
mixin(var);
}
More information about the Digitalmars-d
mailing list