返回首页 Scala 课堂

Scala 课堂:基础(一)

这里我们转载 Twitter 的 Scala 课堂 ,转载的内容基本来自 Twitter 的 Scala 课堂中文翻译,部分有小改动.

表达式


scala> 1 + 1
res0: Int = 2

res0 是解释器自动创建的变量名称,用来指代表达式的计算结果。它是 Int 类型,值为2。

Scala 中(几乎)一切都是表达式。

你可以给一个表达式的结果起个名字赋成一个不变量(val)。


scala>  val two = 1 + 1
two: Int = 2

变量

如果你需要修改这个名称和结果的绑定,可以选择使用 var

scala>  var name = "steve"
name: String = steve

scala>  name = "marius"
name: String = marius

函数

你可以使用 def 创建函数.


scala> def addOne(m: Int): Int = m + 1
addOne: (m: Int)Int

在 Scala 中,你需要为函数参数指定类型签名。


scala> val three = addOne(2)
three: Int = 3

如果函数不带参数,你可以不写括号。


scala> def three() = 1 + 2
three: ()Int

scala> three()
res0: Int = 3

scala> three
res2: Int = 3

匿名函数

你可以创建匿名函数。


scala> (x: Int) => x + 1
res3: Int => Int = <function1>

这个函数为名为 x 的 Int 变量加1。


scala> res3(1)
res4: Int = 2

你可以传递匿名函数,或将其保存成不变量。


scala> val addOne = (x: Int) => x + 1
addOne: Int => Int = <function1>

scala>  addOne(1)
res5: Int = 2

如果你的函数有很多表达式,可以使用{}来格式化代码,使之易读。


def timesTwo(i: Int): Int = {
  println("hello world")
  i * 2
}

对匿名函数也是这样的


scala>  { i: Int =>
     |   println("hello world")
     |   i * 2
     | }
res6: Int => Int = <function1>

在将一个匿名函数作为参数进行传递时,这个语法会经常被用到

上一篇: 关于 下一篇: Scala课堂:基础(...