vi sia bisogno per abbinare i campi manualmente
defmodule Test do
def foo(%User{name: name, twitter: twitter}, {User, name, twitter}) do
IO.puts "match :)"
end
def foo(_struct, _record) do
IO.puts "no match :("
end
end
o è necessario convertirlo in un primo struct e poi abbinare i due
defmodule Test do
def foo(struct, record) do
do_foo struct, user_record_to_struct(record)
end
defp user_record_to_struct({User, name, twitter}) do
%User{name: name, twitter: twitter}
end
defp do_foo(struct, struct) do
IO.puts "match :)"
end
defp do_foo(_struct1, _struct2) do
IO.puts "no match :("
end
end
fonte
2015-05-28 06:08:43
Dal momento che si è iniziato con "per quanto ne so" , Voglio solo confermare che questa risposta è perfettamente corretta. :) –
Grazie, @ JoséValim l'ha rimosso ;-) –