Ich habe etwas Seltsames in Elixir mit String.to_integer
. Nichts Wichtiges, aber ich würde gerne wissen, ob es eine Möglichkeit gibt, alle meine Funktionen mit dem Pipe-Operator zu verbinden.Seltsames Verhalten mit String.to_integer/1
Hier ist das Problem. Diese Codezeile (können Sie versuchen, in "iex"):
[5, 6, 7, 3]
|> Enum.reverse
|> Enum.map_join "", &(Integer.to_string(&1))
gibt die Zeichenfolge "3765"
Was ich will, ist eine ganze Zahl. Also muss ich nur dieses kleine Stück Code |> String.to_integer
am Ende der vorherigen Aussage hinzufügen, und ich sollte eine ganze Zahl haben. Lass es uns versuchen. Dieses Stück Code:
[5, 6, 7, 3]
|> Enum.reverse
|> Enum.map_join "", &(Integer.to_string(&1))
|> String.to_integer
gibt mir dies: "3765"
. Keine ganze Zahl, eine Zeichenkette!
Wenn ich das aber:
a = [5, 6, 7, 3]
|> Enum.reverse
|> Enum.map_join "", &(Integer.to_string(&1))
String.to_integer(a)
Es gibt mir eine ganze Zahl: 3765
.
Es ist, was ich gerade mache, aber es macht mich wütend, weil ich würde lieben, alle diese Funktion die gute Art und Weise mit dem erstaunlichen Pfeifenbetreiber zu verketten.
Danke für die Hilfe oder die Lichter. Elixier macht sehr viel Spaß!
diesem Grund habe ich im Allgemeinen gegen optional Pars bin. In ein paar Fällen ist es schön zu haben, aber ich denke, es ist im Allgemeinen besser, die Angewohnheit zu schaffen, immer Parens dort hinzustellen, wo sie gebraucht werden. – Davs
@Patrick Oh Mann, es ist so hilfreich. Danke für die Erläuterung der Klammer und für die bessere und schönere Alternativlösung. Ich bin es still, wenn es Ihnen nichts ausmacht :-) – d34n5