Not being a ruby programmer, is there a defensive coding idiom that would have prevented this confusion?
back
3 comments
You can always test for nil explicitly. Compare:
unless foo
# ... foo can be false or nil to reach this branch
end
unless foo == false
# ... this branch is reached unless foo == false
end
Since terseness is considered such a cardinal virtue amongst Ruby programmers (including myself), however, this kind of issue is often ignored, and difficult to detect unless your tests explicitly check for "truthy" and "non-truthy" values in addition to the true/false literals.Thanks.
tell me in detail
if object.nil?
puts "Object is nil!"
else
puts "Object is not nil."
endHaskell obviously isn't Ruby, but its Maybe monad, where you have Just the login, or Nothing, looks pretty appealing.