Let's go back to the past and see how the absence of a value is represented in Objective-C, as an example. There isn't a standard solution for representing the absence of a value for both reference and simple value types. There are two different ways:
NSNotFound, and so on
For reference types, Objective-C uses the
nil value to represent that a variable doesn't have a value. It points to nowhere.
For value types, there is no such value as
nil and it is not possible to assign
nil to an integer variable. To do that, Objective-C (and not only Objective-C but also C, Java, and many other languages) uses a few special values that are unlikely to be the result of a particular operation. ...