|
|
|
|
|
by masklinn
1771 days ago
|
|
I don't know about "variety of ways". You just make it so pointers can't be null, then provide a mechanism for opt-in nullability, requiring an explicit check / conversion to get a non-nullable pointer (which you can dereference) and allowing free / cheap / implicit conversion from non-nullable to nullable. This can be: * separate pointer types (e.g. C++ pointers v references) * a built-in sigil / wrapper / suffix e.g. C#'s Nullable / `?` types * a bog-standard userland sum type e.g. Maybe/Option/Optional In modern more procedural languages the third option often will have language-level (non-userland) facilities tackled on for better usability but that's not a requirement. For cases (2) and (3) it can (depending on language and implementation) also provides a mechanism for making other value types optional without necessarily having to heap-allocate them. |
|