Gibt es eine Möglichkeit, diese Art von Verfahren zu verkürzen Anrufe:Übergabe von Argumenten an eine Funktion und ruft es über „&“
aaa = Enum.find(Statuses, fn(x) -> x.name == :pending end)
etwas wie folgt aus:
aaa = Enum.find(Statuses, &==, [:name, :pending])
Das heißt, übergeben Sie den arithmetischen Operator "==", strukturieren Sie den Feldnamen name
und den Wert :pending
als Argumente.
Leider ist das nicht korrekt: '[% {n: 1, Name:: vollständig},% {n: 2, Name:: p ending}] |> Enum.find (&% {name:: pending} = & 1) # => ** (MatchError) keine Übereinstimmung des rechten Wertes:% {n: 1, name:: complete} '. – Dogbert
@Dogbert in der Tat, aber das sieht mir dumm. Es sollte wahrscheinlich funktionieren (vielleicht nicht so genau, aber mit einer anderen 'Enum.select/2' oder ähnlichen Methode). Ich werde diese Antwort entfernen und stattdessen eine Feature-Anfrage erfüllen. – mudasobwa