| ▲ | realharo 9 hours ago | |
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. | ||
| ▲ | uecker 6 hours ago | parent [-] | |
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 | ||