I started learning Elixir recently, while working on a personal project I had to pattern match between struct and map in a function. While glancing through the documentation I came across a function is_map
, as the name suggests it check if the argument is map or not. Coming from a C# background I thought it is going to work, but it didn’t.
In Elixir struct is a special kind of map, so is_map
function matches both. Then I went through some of the open source code bases and came across a way to do this(don’t remember from which project I saw this)
1 | # This match struct |
Very powerful pattern matching technique and elegant solution. Here if data
is a struct it matches first function and if it is map matches the second one.