4 ms·
For example in Typescript, you can specify whether a parameter is allowed to be null in the signature of a function. If you do the compiler will make sure that
by cageface 5y ago
For example in Typescript, you can specify whether a parameter is allowed to be null in the signature of a function. If you do the compiler will make sure that you don't accidentally pass a null value to that function.
function foo(x: number) {
return x + 1;
}
let y = null;
foo(y); // compiler will flag this
- drvd 5y agoIn Go func foo(x int) { return x + 1 } var y *int = nil foo(y) // compiler will flag thi
- Gwypaas 5y agoNow add an error to foo and have x=0 as a valid return value, or even worse, having to deal differently with different errors.
- cy_hauser 5y agoThat wasn't the greatest example as Go doesn't really have any way to represent it. If it did it might be something like this. type MyStruct struct { Name string } var-not-nil myStruct = &MyStruct{"Hello"} // this is a "not-nil" pointer variable myStruct = nil // compiler would catch this The idea being to allow variables to hold and pass pointers to structs like now but ensure they are never nil.