Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

In the informal context of GP’s comment, null is a singleton type whose sole value is null.

That exact syntax (modulo langage divergences) is one of the options for “nullable” in Python: https://docs.python.org/3/library/typing.html#typing.Optiona...



Which can still lead to unrecoverable runtime errors, that could otherwise be compilation errors.


What are you talking about?


I'm talking about the fact that nullable types do not on their own guarantee null safety and that these two things are not equivalent.


That's about as unclear as your previous comment, at best. At worst, it's just wrong.

The typechecker would only allow on the union operations which are allowed on both types, anything beyond that would first have to use type checks or assertions in order to split the union.

So, again, what are you talking about?


That's actually a good point. I made assumptions about the meaning of the term `null` that can't be true in every language that uses it.

There are some exceptions to the behaviour you describe, like for instance with C# which for the longest time only allowed value types to be annotated as nullable, and only very recently extended this to reference types, and only as an opt-in feature, and the type checker only throws warnings, etc. That would be a case of a language which is not "null safe" but provides faculties for accomplishing that.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: