|
| """
MakeAnIfElseLadder.cobra
Consider possible alternatives to an if-else ladder:
* Make a class hierarchy and send a message to the object.
* Use the `branch` statement (see MakeABranchStatement.cobra)
When using an if-else ladder, consider raising a FallThroughException() at the
bottom if you expect that it should never happen.
See also: MakeABranchStatement.cobra, CheckInheritanceAndImplementation.cobra.
"""
class Program
def main is shared
t = Thing()
if t.isSmall
print 'small'
else if t.isMedium
print 'medium'
else if t.isLarge
print 'large'
else
throw FallThroughException(t)
# ^ As seen here, you can (optionally) include a value with the
# fall-through exception which is the value that was being examined.
class Thing
"""
A thing is always small, medium or large, and never more than one.
"""
get isSmall as bool
return false
get isMedium as bool
return true
get isLarge as bool
return false |