我正在读Scala,我想知道...
为什么
val capacity : Int 而不是
val Int capacity.做出这个选择的任何原因。如果不是,在我看来,放弃Java声明它的方式并不是一个好的选择。将会使从Java到Scala的转换变得更容易(不是很多,但只是一点点)
发布于 2009-12-12 08:55:56
因为在大多数情况下,您可以省略Int部分。Scala的类型推断系统比Java要简洁得多。
发布于 2011-03-17 20:05:18
我想我在某个地方读到了Martin Odersky本人的声明,他说这个决定也是为了提高可读性。当然是这样的,例如比较
val Double number = ...
val Array[(Seq[String], Map[Seq[String], Double])] something = ...
val String pattern = ...使用
val number : Double = ...
val something : Array[(Seq[String], Map[Seq[String], Double])] = ...
val pattern : String = ...大多数时候,你需要快速(直观地)找到引用/方法的名称,而不是类型。
发布于 2009-12-12 20:26:22
X:t是逻辑和许多编程语言中类型的标准表示法。C和它的后代,包括Java,与此背道而驰。但是C的类型表示法真的很糟糕(试着写下一些中等复杂的高阶函数的类型,比如map)。
此外,使用这种表示法很容易省略类型(正如Wysawyg已经写过的那样),或者在表达式中添加类型。
https://stackoverflow.com/questions/1891775
复制相似问题