Als Beispiel hat die Funktion Integer.parse/2
einen Standardwert von 10 für die Basis, während String.to_integer/1
und String.to_integer/2
beide existieren, wobei die zweite verwendet wird, wenn base
angegeben werden muss.Warum verwenden einige Elixir-Bibliotheksfunktionen mehrere Aritäten, während andere Standardwerte verwenden?
Gibt es einen Grund, dass es auf diese Weise implementiert wurde? Wann sollte ich das eine oder das andere verwenden, um Funktionen zu definieren?
Meine angenommene Antwort ist, dass es einen tatsächlichen Unterschied in der Implementierung für die unterschiedlichen Aritäten gibt, während die Standardversion die gleiche Implementierung hat. Ich weiß jedoch nicht, warum es in diesem Fall speziell eine andere Umsetzung geben würde.
Wow. Erstens ist es cool, diesen Aspekt von Standardargumenten zu sehen, aber zweitens macht es mehr Sinn, dass sie es so machen würden, um sich an den Erlang anzupassen. – Camsbury