zoukankan      html  css  js  c++  java
  • Scala 中的约定

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

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

    • 支持脚本。不是所有的代码都需要放在一个类中。如果一个脚本就能满足需求,就直 接将可执行的代码放在一个文件中,没有必要都堆在一个类中。

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

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

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

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

      的属性。

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

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

    除此之外,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包中的 定义。

  • 相关阅读:
    Istio技术与实践02:源码解析之Istio on Kubernetes 统一服务发现
    Istio技术与实践01: 源码解析之Pilot多云平台服务发现机制
    深度剖析Kubernetes API Server三部曲
    深度剖析Kubernetes API Server三部曲
    深度剖析Kubernetes API Server三部曲
    深入了解Kubernetes REST API的工作方式
    Cassandra schema version 不一致
    ByteToMessageDecoder
    Byte Bit
    为什么要用Executors.defaultThreadFactory().newThread(run);创建线程?
  • 原文地址:https://www.cnblogs.com/feiquan/p/13491470.html
Copyright © 2011-2022 走看看