Comment by uecker
2 days ago
A pointer is a type where a null pointer can't be used as a regular value but leads to a trap when dereferenced.
2 days ago
A pointer is a type where a null pointer can't be used as a regular value but leads to a trap when dereferenced.
By "can't be used as a regular value", I meant that it would be a compile-time error. That you have to explicitly opt into skipping the check, e.g. with `unwrap` in Rust, or with something like `!` in languages where `string` and `string?` are different types (like TypeScript, Kotlin, Swift, C#, etc.)
Trying to change a function return type from e.g. `string` to `string?` would make the backwards-incompatible breaking change immediately visible, and break the builds of all code that relied on not having to check it back when it was `string` - at compile time.
I see. For safety a run-time check is enough though.
But it turns out one can have a compile-time error forthis in C as well: https://godbolt.org/z/8E9z66cfs