<p> <strong style="color: #555555;">这里我们转载<a style="font-weight: inherit; font-style: inherit; color: #0085cf;">Twitter的Scala课堂</a> ,转载的内容基本来自Twitter的Scala课堂中文翻译,部分有小改动.</strong> </p> <p> <strong>表达式</strong> </p> <pre class="brush: scala; title: ; notranslate" title="">scala> 1 + 1 res0: Int = 2</pre> <p> res0是解释器自动创建的变量名称,用来指代表达式的计算结果。它是Int类型,值为2。 </p> <p> Scala中(几乎)一切都是表达式。 </p> <p> <strong>值</strong><br/>你可以给一个表达式的结果起个名字赋成一个不变量(val)。 </p> <pre class="brush: scala; title: ; notranslate" title="">scala> val two = 1 + 1 two: Int = 2</pre> <p> <strong>变量</strong><br/>如果你需要修改这个名称和结果的绑定,可以选择使用var </p> <pre class="brush: scala; title: ; notranslate" title="">scala> var name = "steve" name: String = steve scala> name = "marius" name: String = marius</pre> <p> <strong>函数</strong><br/>你可以使用def创建函数. </p> <pre class="brush: scala; title: ; notranslate" title="">scala> def addOne(m: Int): Int = m + 1 addOne: (m: Int)Int</pre> <p> 在Scala中,你需要为函数参数指定类型签名。 </p> <pre class="brush: scala; title: ; notranslate" title="">scala> val three = addOne(2) three: Int = 3</pre> <p> 如果函数不带参数,你可以不写括号。 </p> <pre class="brush: scala; title: ; notranslate" title="">scala> def three() = 1 + 2 three: ()Int scala> three() res0: Int = 3 scala> three res2: Int = 3</pre> <p> <strong>匿名函数</strong><br/>你可以创建匿名函数。 </p> <pre class="brush: scala; title: ; notranslate" title="">scala> (x: Int) => x + 1 res3: Int => Int = <function1></pre> <p> 这个函数为名为x的Int变量加1。 </p> <pre class="brush: scala; title: ; notranslate" title="">scala> res3(1) res4: Int = 2</pre> <p> 你可以传递匿名函数,或将其保存成不变量。 </p> <pre class="brush: scala; title: ; notranslate" title="">scala> val addOne = (x: Int) => x + 1 addOne: Int => Int = <function1> scala> addOne(1) res5: Int = 2</pre> <p> 如果你的函数有很多表达式,可以使用{}来格式化代码,使之易读。 </p> <pre class="brush: scala; title: ; notranslate" title="">def timesTwo(i: Int): Int = { println("hello world") i * 2 }</pre> <p> 对匿名函数也是这样的 </p> <pre class="brush: scala; title: ; notranslate" title="">scala> { i: Int => | println("hello world") | i * 2 | } res6: Int => Int = <function1></pre> <p> 在将一个匿名函数作为参数进行传递时,这个语法会经常被用到 </p>
时间: 2024-10-08 16:17:06