Scala 中的约定

 内容来自书籍《Scala 实用指南》3.8java

Scala 中有一些约定,可让代码简洁且易于阅读、编写。下面是这些特性的示例。闭包

  • 支持脚本。不是全部的代码都须要放在一个类中。若是一个脚本就能知足需求,就直 接将可执行的代码放在一个文件中,没有必要都堆在一个类中。性能

  • return 是可选的。假定最后一个求值的表达式可以匹配方法所声明的返回类型,那 么这个表达式的求值结果将会自动做为方法调用的结果值返回。无须加入显式的 return 语句能够简化代码,尤为是在将一个闭包传递为方法参数时。spa

  • 分号是可选的。不须要使用分号来标识每个语句或者表达式的结束(参见 3.10.3 节)这个特性可以去除代码中的噪声。若是要多个语句放在同一行上面,可使用分 号来分隔。没有分号,Scala 也能智能地推断出一个语句或者表达式是不是完整的, 若是不是,那么 Scala 将会接着在下一行读取剩余的代码。scala

  • 类和方法默认就是公开的,因此你无须显式使用 public 关键字。对象

  • Scala 提供轻便的语法以建立 JavaBeans— 它用不多的代码就能建立变量和不可变it

    的属性。io

  • 对于咱们不关心的那些异常,Scala不会强制要求进行捕获,可以缩减代码体积,同时也可以避免不合理的异常处理。table

  • 括号和点号也是可选的。class

除此以外,Scala 默认会导入两个包、scala.Predef 对象以及它们相应的类和成员。 只用类名就能够从这些预导入的包中引用相应的类。Scala 按照顺序导入下面的包和类:

• java.lang
• scala
• scala.Predef

由于 java.lang 已经自动导入,因此无须额外的导入就能够在脚本中使用通用的 Java 类型。例如,可使用 String,并且不用在前面加上包名 java.lang 做前缀或者 导入它。

也能够直接使用 Scala 的类型,由于 scala 包中的一切都已经导入。

Predef 对象中包含了类型、隐式转换以及在 Scala 中经常使用的一些方法。因此,既然已 经默认导入,那么无须任何前缀或者导入,就能够直接使用那些方法和隐式转换。它们太方 便了,以致于你开始相信它们是 Scala 的一部分,实际上它们是 Scala 标准库的一部分。

Predef 对象还提供了一些类型的别名,如 scala.collection.immutable.Set 和 scala.collection.immutable.Map。所以,当使用 Set 或者 Map 的时候,实际使用的 是Predef中对它们的定义,它们分别指向它们在scala.collection.immutable包中的 定义。

相关文章
相关标签/搜索