On Tuesday, 23 February 2016 at 06:49:46 UTC, Tobias Müller wrote:
rsw0x <anonym...@anonymous.com> wrote:
On Saturday, 20 February 2016 at 09:40:40 UTC, Tobias Müller
wrote:
[...]
D has this too, but only for nullable types afaik.
if(byte* ptr = someFunc()){
//...
}
That's not quite the same as there are no non-nullable pointers
in D.
There's no guarantee from the type system that the byte* is not
null and
there are no compiler checks involved.
It's a simple runtime check.
OTOH in the examples in Kotlin/Rust the variable 'var' changes
its type
from 'int?' to plain 'int'.
In Kotlin this is done with static analysis, in Rust with
rebinding of the
name.
Tobi
Rust's Option<T> checks are not done at compile-time in most
cases unless something changed drastically in the past ~18 months.