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;
}
}