Case statement equivalent?

What I want to do…

data = Foo Int | Bar Float

case x
Foo y → print “it’s an int”, y
Bar y → print “it’s a float”, y

Is there a way to approximate this ?

The magic of search…

https://matchjl.readthedocs.io/en/latest/

Not exactly sure how I stumbled upon it…

1 Like

Match.jl provides quite powerful pattern matching capabilities, but if you only want to choose action based on types (or other fixed parameters), you can use great Julia’s multiple dispatch:

struct Foo
    x::Int
end

struct Bar
    x::Float64
end


printtype(y::Foo) = println("it's a int: $y")
printtype(y::Bar) = println("it's a float: $y")
2 Likes