Ich möchte einen selektiven Empfang, wo eine Datensatzeigenschaft abgeglichen werden muss, tun, aber welche Syntax ich auch versuche, bekomme ich eine "illegale Muster" Nachricht.Erlang: Gibt es eine Möglichkeit, einen Datensatz in einer receive-Klausel mit einem Muster abzugleichen?
loop(State) ->
receive
{response, State#s.reference} -> do_something()
end.
Ist das nicht möglich?
Dies ist ein illegales Muster, weil es bedeutet wörtlich: binden, dieses Element des Datensatz auf den Wert erhalten, indem erhalten. Ganz zu schweigen davon, dass der Zugriff auf Datensatzelemente grundsätzlich ein Funktionsaufruf ist, der nicht auf der linken Seite einer Bindung erscheinen kann. – Zed