eine anonyme Funktion mit dem Rohr in Elixir passieren würde Ich mag den Code wie folgt schreiben:Wie
def boundary do
:crypto.rand_bytes(8)
|> Base.encode16
|> &("--------FormDataBoundary" <> &1)
end
Aber es funktioniert nicht.
eine anonyme Funktion mit dem Rohr in Elixir passieren würde Ich mag den Code wie folgt schreiben:Wie
def boundary do
:crypto.rand_bytes(8)
|> Base.encode16
|> &("--------FormDataBoundary" <> &1)
end
Aber es funktioniert nicht.
Es wird etwas seltsam aussehen, aber arbeiten müssen:
def boundary do
:crypto.rand_bytes(8)
|> Base.encode16
|> (&("--------FormDataBoundary" <> &1)).()
end
Verwandte: Wenn die „anonymous“ Funktion einer Variablen zugewiesen wurde, können Sie Rohr, um es wie folgt aus:
def boundary do
add_marker = fn (s) ->
"--------FormDataBoundary" <> s
end
:crypto.rand_bytes(8)
|> Base.encode16
|> add_marker.()
end
Diese kann mein Problem lösen. – ruisin
Gibt es einen Grund dafür, dass es so komisch ist? Wenn ich eine Funktion an eine Pipe übergebe, behandle ich sie eher wie eine Variable (ja, ich komme aus Javascript), aber doing (fn).() Sieht so aus, als würde ich sie sofort aufrufen, was ich nicht bin. – leitasat
@leiitasat Siehe http://stackoverflow.com/a/18023790/4376 –