2011-09-17 16 views
6

Ho scritto per sbaglio questa riga di codice:A cosa serve AnyVal.types?

scala> val f = Int 
f: Int.type = object scala.Int 

sembra funzionare per ogni sottotipo di AnyVal tranne AnyVal sé.

C'è qualcosa che posso usare f o è solo un dettaglio di implementazione di Scala che perde?

risposta

7

L'oggetto companion Int è documented here. Non fornisce un sacco, ma qui ci sono un paio di cose:

scala> val f = Int 
f: Int.type = object scala.Int 

scala> f.MaxValue 
res1: Int = 2147483647 

scala> f.box(2) 
res2: java.lang.Integer = 2 
+1

Oh sciocco me, è l'oggetto associato ... Credo che sia ora di andare a letto ora;) – agilesteel

+6

Forse ancora più importante, il ' Gli oggetti complementari AnyVal sono usati come parametri per l'annotazione '@ specializzata'. – retronym