Gibt es eine Möglichkeit, die Rückgabetypspezifikation einer Funktion in einer anderen Funktionsspezifikation zu referenzieren?Geben Sie einen Verweis auf eine Elixier-Funktion @spec in einer anderen Dekorationsfunktion an @spec
defmodule Car do
@spec beep(none()) :: String.t
def beep do
"beep"
end
@spec beep_log(none()) :: String.t
def beep_log do
IO.puts "beep log"
beep
end
end
Kann die Spezifikationen für beep_log in etwa wie folgt angegeben werden:
@spec beep_log(none()) :: beep()
I zu Art Referenzen wie '@return verpasst (siehe foo)' in YARD, aber es gibt einen guten Grund, das nicht zu unterstützen: es sein kann, Häufig sind zirkuläre Abhängigkeiten von Eingabe- und Rückgabetypen aufgrund von 'foo_to_bar'- und' bar_to_foo'-Konvertierungsfunktionen. Viele Male in Elixir sind diese Funktionen in verschiedenen Modulen wie 'Foo.to_bar' und' Bar.to_foo', was bedeutet, dass es ein Kompilierauftragsproblem werden würde. –