2016-04-21 2 views
4

Какова наилучшая практика для сопоставления на карте с ключами, определенными как атомы или строки?Карта с безразличным доступом к ключу

%{"artist" => artist, "track" => track, "year" => year} 

против

%{artist: artist, track: track, year: year} 

Функции должна соответствовать на оба:

def duplicate_post(%{"artist" => artist, "track" => track, "year" => year}) do 
    ... 
end 

ответ

6

Лучший способом я могу думать о том, чтобы определить функцию дважды, один раз для каждого вида ввода, и вызовите один из них из другого.

def duplicate_post(%{"artist" => artist, "track" => track, "year" => year}) do 
    duplicate_post(%{artist: artist, track: track, year: year}) 
end 

def duplicate_post(%{artist: artist, track: track, year: year}) do 
    ... 
end 
Смежные вопросы