2 ms·
I think much of the confusion around nulls stems from the fact that in mainstream languages pointers are overloaded for two purposes: for passing values by refe
by initplus 5y ago
I think much of the confusion around nulls stems from the fact that in mainstream languages pointers are overloaded for two purposes: for passing values by reference, and for optionality.
Nearly every pointer bug is caused by the programmer wanting one of these two properties, and not considering the consequences of the other.
Non-nullable references and pass-by-value optionals can replace many usages of pointers.
- alerighi 5y agoYes, and they are just two usages of pointers. The fact is that, whatever you call it, null pointer, nullable reference, optional, you have to put in a language a concept of "reference to an object that can reference a non valid object".
- initplus 5y agoEvery pointer you can replace by a pass-by-value optional or a non-nullable reference is one less opportunity for errors. Providing more restricted types that can replace raw pointers for many use cases makes languages safer.