Есть ли способ, чтобы сократить эти виды вызовов метода:Передача аргументов функции и назвав его через «и»
aaa = Enum.find(Statuses, fn(x) -> x.name == :pending end)
к чему-то вроде этого:
aaa = Enum.find(Statuses, &==, [:name, :pending])
То есть, передать арифметический оператор «==», имя поля структуры name
и значение :pending
в качестве аргументов.
К сожалению, это неверно: '[% {n: 1, name:: complete},% {n: 2, name:: p end}] |> Enum.find (&% {name:: pending} = & 1) # => ** (MatchError) нет соответствия значения правой стороны:% {n: 1, name:: complete} '. – Dogbert
@ Dogbert действительно, но это выглядит глупо для меня. Вероятно, он должен работать (может быть, не так точно, но с каким-то другим методом «Enum.select/2» или подобным.) Я удалю этот ответ и полностью заполняю запрос функции. – mudasobwa