On Thursday, 14 January 2021 at 18:24:44 UTC, ddcovery wrote:
If it's not a bother, I'd like to know how you usually approach it

Usually I don't deal with null because my functions get primitive types, slices, or structs. `ref` parameters can be used to replace pointers that may not be null.
When something is nullable by design, I usually do this:

```
if (!person) {
    return; // early return if possible
}
if (auto f0 = person.father) {
    if (auto f1 = f0.father) {
       if (f1.name == "Peter") {
           doSomething();
       }
    }
}
```

It doesn't matter whether you're working with a class, pointer, or struct with opCast, this works. When access patterns get complex the nesting may get very deep. Only if you can't avoid this I would consider using fancy helper functions, otherwise just use an if-statement or the && operator.

Reply via email to