最近我遇到了一些定义类型的代码,如下所示:
val a = "Hello":String
而不是:
val a:String = "Hello"
第一种表示法有什么优势吗?也许,也许在编译中?
最佳答案
我能想到的一个边际 yield 是第一个符号可以在表达式内部使用,例如(a: String) + b
,如果你不想给出完整的类型或者想触发隐式转换(当然,你可以两者都做,同时仍然给出左边的类型为出色地)。另一方面,第二个:
对于递归值和方法以及抽象成员是必需的;
应用更广泛;
在类似
(a + b): String
; 的情况下,表达式不需要括号
允许您在定义超过一行时更立即地看到签名。
我想不出任何其他显着差异。
关于scala - 为什么在 RHS 而不是 LHS 中定义类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33063025/