
Null (or nil) is the computer science concept of an undefined or unbound object.
Some languages have an explicit way to access the null object, and some don't.
Some languages distinguish the null object from undefined values, and some don't.



Task

Show how to access null in your language by checking to see if an object is equivalent to the null object.


This task is not about whether a variable is defined. The task is about "null"-like values in various languages, which may or may not be related to the defined-ness of variables in your language.

foo : Int32 | Nil = 5 # this variable's type can be Int32 or Nil
bar : Int32? = nil    # equivalent type to above, but shorter syntax
baz : Int32 = 5       # this variable can never be nil
 
foo.not_nil!          # nothing happens, since 5 is not nil
puts "Is foo nil? #{foo.nil?}"
foo = nil
puts "Now is foo nil? #{foo.nil?}"
 
puts "Does bar equal nil? #{bar == nil}"
 
puts "Is bar equivalent to nil? #{bar === nil}"
 
bar.not_nil!          # bar is nil, so an exception is thrown