Chcę zrobić selektywny odbiór, w którym właściwość rekordowa musi być dopasowana, ale niezależnie od składni, którą próbuję, otrzymuję komunikat "nielegalny wzorzec".Erlang: Czy jest jakiś sposób na dopasowanie rekordu do klauzuli receive?
loop(State) ->
receive
{response, State#s.reference} -> do_something()
end.
Czy to nie jest możliwe?
To jest nielegalne, ponieważ wzór dosłownie znaczy: wiązać ten element rekordu do wartości otrzymanej przez otrzymać. Nie wspominając już o tym, że dostęp do elementu rekordu jest po prostu wywołaniem funkcji, które nie może pojawić się po lewej stronie wiązania. – Zed