Czy istnieje staranna metoda drukowania nazwy klasy w Scali?typ wydruku zmiennej w Scali
Czasami widzę , ponieważ metoda foo
może zwracać różne typy obiektów i gdybym mógł wydrukować typ klasy wyników, będzie świetnie.
Czy istnieje staranna metoda drukowania nazwy klasy w Scali?typ wydruku zmiennej w Scali
Czasami widzę , ponieważ metoda foo
może zwracać różne typy obiektów i gdybym mógł wydrukować typ klasy wyników, będzie świetnie.
Szybki i brudny trik często używam
val result: Nothing = foo(a,b,c)
kompilator zgłosi błąd, zapewniając informacje na temat rzeczywistego typu odesłać go znaleźć.
Przykład z REPL
scala> val foo: Nothing = 42
<console>:1: error: type mismatch;
found : Int(42) // <---- this is what you care about
required: Nothing
val foo: Nothing = 42
Jeśli używasz IDE, można wykorzystać bardziej "wyrafinowane" Opcje:
Dzięki Gabriele, zagłosuj. Czy istnieje sposób dynamicznego drukowania typu, ponieważ metoda 'foo' ma różne typy zwracania dynamicznego i decyduje w czasie wykonywania. –
@LinMa, to jest zupełnie inne pytanie niż to, które zadałeś :) Zdecydowanie potrzebuję bardziej kompleksowego przykładu, aby dać odpowiednią odpowiedź –
Jeśli chcesz prawdziwą klasę runtime, po prostu użyj 'result.getClass'. 'Set (1) .getClass' wypisze' class scala.collection.immutable.Set $ Set1' –
W intellijcie możesz użyć 'alt' +' = ' –
@ Łukasz, dziękuję i głosujesz, a mam na myśli w konsoli, gdy program działa dynamicznie, ponieważ typy są decydowane przez dynamiczne uruchamianie wartości. :) –