On Friday, 17 January 2014 at 03:02:57 UTC, inout wrote:
On Friday, 17 January 2014 at 02:52:15 UTC, bearophile wrote:
deadalnix:

Most object don't have a sensible init value. That is just hiding the problem under the carpet.

If there's desire to solve this problem I think that improving the type system to avoid nulls where they are not desired is better than having an init object.

So aren't not-nullable pointers and references a better solution?

Bye,
bearophile

This! Also, if anything, it's better to turn `init` into a method
rather than an object. The following would work all of a sudden:

class Foo
{
    Bar bar = new Bar();
    int i = 42;

    Foo() {
       assert(bar !is null);
       assert(i == 42);
    }

    // auto-generated
    private final void init(Foo foo) {

       foo.bar = new Bar();
       foo.i = 42;
    }
}
That would be indeed a nice solution and would break AFAIK nothing. :)

Reply via email to