Multiple dispatch
- Multi-dispatch functions with same name but different signature
examples/functions/overloading.cr
def welcome(name : String) puts "welcome string" end def welcome(number : Int32) puts "welcome integer" end welcome("Foo") welcome(42)
- Integers are also accepted when we are expecting floats
examples/functions/overloading_float_int.cr
def add(x : Int32, y : Int32) puts "handling two integers" end def add(x : Float64, y : Float64) puts "handling two floats" end add(2, 3) add(2.1, 3.1) add(2.1, 3)