《快学Scala》——控制结构和函数

2019-03-16

条件表达式

  • 在Scala中if/else表达式有值,这个值就是跟在if或else之后的表达式的值。例如:
      if (x > 0) 1 else -1
    

    上述表达式的值是1或-1,具体是哪一个取决于x的值。你可以将if/else的值赋值给变量:

      val s = if (x > 0) 1 else -1
    

    这与如下语句的效果一致:

      if (x > 0) s = 1 else s = -1
    

    以上两个的区别在于:第一个可以用来初始化val;第二种s必须是var。

Read More

《快学Scala》——对象、包

2019-03-16

单例对象

Scala没有静态方法静态字段,可以用object来达到同样目的。

object Accounts {
    private var lastNumber = 0
    def newUniqueNumber() = { lastNumber += 1; lastNumber }
}

对象本质上可以拥有类的所有特性,只有一个例外:不能提供构造器参数。

Read More

《快学Scala》——基础

2019-03-16

声明值和变量

  • val定义的值实际上是常量。用var定义的值是变量。在scala中鼓励使用val。不需要给出值或变量的类型,这个信息可以通过初始化的表达式推断出来。(声明值和变量但不做初始化会报错)
Read More