这是我的发现。我发现在Scala
我可以简单地写下这样的表达式:
val n: Int = (((2: Int): Int): Int): Int
并且它100%有效。但我不知道为什么Scala创作者会这样做?这个语义有什么意义?这种奇怪有什么原因吗?
PS
我可以假设这种方法用于type inference
以帮助编译器弄清楚发生了什么。或者也许还有其他一些案例?
答案 0 :(得分:6)
Int
(在您的情况下为2
)为Int
(并保持为Int
)。即使你通过( (previous : ...) : Int )
重复多次,它仍然是Int。