Czytam przez jakiś Code eliksiru na github i widzę |>
wykorzystywane są często. Nie pojawia się na liście operation na stronie dokumentacji. Co to znaczy?Co oznacza "|>" w eliksiru?
tj
expires_at: std["expires_in"] |> expires_at,
Czytam przez jakiś Code eliksiru na github i widzę |>
wykorzystywane są często. Nie pojawia się na liście operation na stronie dokumentacji. Co to znaczy?Co oznacza "|>" w eliksiru?
tj
expires_at: std["expires_in"] |> expires_at,
To pipe operator. Z połączonych dokumentów:
Ten operator wprowadza wyrażenie po lewej stronie jako pierwszy argument wywołania funkcji po prawej stronie.
Przykłady
IEX>
[1, [2], 3] |> List.flatten()
[1, 2, 3]
Powyższy przykład jest taki sam, jak wywoływanie
List.flatten([1, [2], 3])
.
Poza doskonałą odpowiedzią Stefana, może chcesz przeczytać sekcję o nazwie „Pipeline Operator” tego blog posting dla lepszego zrozumienia przypadku użycia że operator rurociągu przeznaczonego do zajęcia w Elixir. Ważna koncepcja jest następująca:
Operator rurociągu umożliwia łączenie różnych operacji bez użycia zmiennych pośrednich. . Kod może łatwo być , a następnie odczytać go od góry do dołu. Mijamy stanu poprzez różnych przekształceń, aby uzyskać pożądany efekt, każdy transformację powracającego trochę zmodyfikowaną wersję państwa.
daje możliwość uniknięcia złego kodu:
orders = Order.get_orders(current_user)
transactions = Transaction.make_transactions(orders)
payments = Payment.make_payments(transaction, true)
sam kod operatora za pomocą rurociągu:
current_user
|> Order.get_orders
|> Transaction.make_transactions
|> Payment.make_payments(true)
przyjrzeć funkcji Payment.make_payments istnieje drugi parametr bool, jeśli był to pierwszy parametr podobny do tego:
def make_payments(bool_parameter, transactions) do
//function
end
to by już nie działało.
przy opracowywaniu aplikacji eliksir pamiętać, że ważne parametry powinny być w pierwszej kolejności, w przyszłości będzie to daje możliwość korzystania z operatorem rurociągu.
nienawidzę to pytanie podczas pisania non kod eliksir: co należy nazwać tę zmienną? Tracę mnóstwo czasu na odpowiedź.
W IEX można użyć 'h |>/2', aby zobaczyć swoją dokumentację. Działa dla dowolnego operatora binarnego 'h ++/2',' h +/2', operatorów jednoargumentowych 'h -/1' lub zwykłych funkcji' h is_atom'. –