Wenn ich eine Funktion schreibe, die eine andere Funktion übergibt, gibt es eine Möglichkeit, die Arität der Funktion zu überprüfen, die ich übergeben habe, oder Muster mit verschiedenen Aritäten zu vergleichen? Ich könnte is_function/2 verwenden, um nach bestimmten Aritäten zu suchen, aber das wäre ein ungeschickter Weg, um die Nummer zu bekommen.Gibt es eine Möglichkeit, die Funktion einer Funktion in Elixir zu überprüfen?
11
A
Antwort
18
Sie können :erlang.fun_info/1
; es gibt eine Reihe von Informationen über eine bestimmte Funktion, einschließlich der arity:
iex> :erlang.fun_info(fn -> :ok end)[:arity]
0
iex> :erlang.fun_info(fn(_, _, _) -> :ok end)[:arity]
3
Da die Dokumentation I sagt verknüpft, wird diese Funktion hauptsächlich für Debugging-Zwecke gedacht ist, aber es kann die arity einer Funktion zu bestimmen.
Verwandte Themen
- 1. Gibt es eine Möglichkeit, die Signatur einer Funktion in Python zu überprüfen?
- 2. Gibt es eine Möglichkeit, Codezeilen in Funktion in Elixir zu kommentieren
- 3. Gibt es eine Möglichkeit, die Argumente einer Funktion von einer anderen JavaScript-Funktion zu ändern?
- 4. Gibt es eine Möglichkeit, eine Funktion in jQuery zu deaktivieren?
- 5. Gibt es eine Möglichkeit, eine mathematische Funktion als Argument einer Funktion in Python 3 zu haben?
- 6. Gibt es eine nicht statische Funktion in Elixir?
- 7. Gibt es eine Möglichkeit, eine reine virtuelle Funktion zu "löschen"?
- 8. Gibt es eine Möglichkeit, über alle Argumente, die an eine Funktion in Elixir übergeben werden, zu iterieren?
- 9. Gibt es eine Möglichkeit, die `[<-`Funktion in` [`Form?
- 10. Gibt es eine Möglichkeit zu überprüfen, ob eine native Javascript-Funktion ein Affe-Patch ist?
- 11. Gibt es eine Möglichkeit zu überprüfen, ob eine VBScript-Funktion definiert ist?
- 12. Gibt es eine bessere Möglichkeit, die Funktion ohne virtuelle Funktion zu wechseln?
- 13. Gibt es eine Möglichkeit zu überprüfen, ob die Funktionsausgabe einer Variablen in Python zugewiesen ist?
- 14. Gibt es eine gute Möglichkeit, Rückgabetypen beim Refactoring zu überprüfen?
- 15. Gibt es ein Elixir-Äquivalent der "Try" -Funktion von Rails?
- 16. Gibt es eine Möglichkeit, eine Funktion auszulösen, nachdem die vorherige Funktion beendet wurde?
- 17. Gibt es eine Möglichkeit, die Anzahl der Aufrufe einer Funktion zu verfolgen?
- 18. Wann eine Funktion in Elixir Inline
- 19. Gibt es eine Möglichkeit, die aktuelle Funktion aus der aktuellen Funktion herauszuholen?
- 20. Gibt es eine Möglichkeit, den Pufferspeicher zu überprüfen?
- 21. Haskell: Gibt es eine Möglichkeit, den Rückgabetyp einer Funktion aus der Funktion abzuleiten?
- 22. Gibt es eine Möglichkeit, Excel VBA-Funktion über Python aufzurufen?
- 23. Elixir - Werte außerhalb einer anonymen Funktion
- 24. Gibt es einen Splat-Operator in Elixir?
- 25. Gibt es eine Möglichkeit, $ in einer anonymen PHP-Funktion NICHT zu erfassen?
- 26. Gibt es eine MAKELONGLONG-Funktion?
- 27. Gibt es in Elixir eine Möglichkeit, ein Modul zu bekommen, um seine Funktionen aufzulisten?
- 28. Gibt es eine Möglichkeit, 3G-Verbindung unter Linux zu überprüfen?
- 29. Gibt es eine Möglichkeit, die Melt-Funktion in Python für mehrere Spalten zu verwenden?
- 30. Gibt es eine schnelle Möglichkeit, in einer Clojure-Funktion nach Nullargumenten zu suchen?