码迷,mamicode.com
首页 > 其他好文 > 详细

Scala课堂(2):基础(一)

时间:2015-12-09 08:48:13      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

<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>

  

Scala课堂(2):基础(一)

标签:

原文地址:http://www.cnblogs.com/shouce/p/5031706.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!