Какова цель типовых надписей в Scala?
В спецификации не так много информации о том, что такое начертание типа, и, конечно же, там нет ничего о цели для этого. Кроме того, чтобы "сделать прохождение varargs работающим", для чего я использовал бы атрибуцию типа? Ниже приведен некоторый scala REPL для синтаксиса и последствий его использования.
scala> val s = "Dave"
s: java.lang.String = Dave
scala> val p = s:Object
p: java.lang.Object = Dave
scala> p.length
<console>:7: error: value length is not a member of java.lang.Object
p.length
^
scala> p.getClass
res10: java.lang.Class[_ <: java.lang.Object] = class java.lang.String
scala> s.getClass
res11: java.lang.Class[_ <: java.lang.Object] = class java.lang.String
scala> p.asInstanceOf[String].length
res9: Int = 4