scala - 为什么在 RHS 而不是 LHS 中定义类型?

标签 scala

最近我遇到了一些定义类型的代码,如下所示:

val a = "Hello":String 

而不是:

val a:String = "Hello"

第一种表示法有什么优势吗?也许,也许在编译中?

最佳答案

我能想到的一个边际 yield 是第一个符号可以在表达式内部使用,例如(a: String) + b,如果你不想给出完整的类型或者想触发隐式转换(当然,你可以两者都做,同时仍然给出左边的类型为出色地)。另一方面,第二个:

  1. 对于递归值和方法以及抽象成员是必需的;

  2. 应用更广泛;

  3. 在类似 (a + b): String;

  4. 的情况下,表达式不需要括号
  5. 允许您在定义超过一行时更立即地看到签名。

我想不出任何其他显着差异。

关于scala - 为什么在 RHS 而不是 LHS 中定义类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33063025/

相关文章:

Scala case语法理解

javascript - JavaScript 中匿名函数的占位符

scala - 在 SBT 中测试初始命令

scala - 前向引用错误但 Scala 脚本运行完美

scala - 在 Spark scala 中匹配 Csv 文件中的列名称

scala - Spark : Using mapPartition with Scala

scala - 如何在 Scala 中声明抽象对象值和方法?

scala - 为 scala 开发一个 IDE 是个好主意吗?

java - 通过 Akka 在 Java 应用程序和 Scala 应用程序之间传输对象消息

scala - 创建Kafka流的AbstractMethodError