scala學習筆記

1.lazyhtml

惰性計算java

     惰性 求值 特別用於 函數式編程語言 中。在使用延遲求值的時候,表達式不在它被綁定到變量以後就當即求值,而是在該值被取用的時候求值 。 除能夠獲得性能的提高外,惰性計算的最重要的好處是它能夠構造一個無限的數據類型。shell

    Scala中經過lazy關鍵字來定義惰性變量,惰性變量只能是不可變變量。例以下面,只有在調用惰性變量b的toString方法的時候,纔會去實例化b這個變量。能夠看到「Test」是先打印出來的。編程

class Book(name:String){maven

    println("new book"+name)編程語言

    override def toString() = "《"+name+"》"ide

}函數式編程

lazy val b = new Book("Java")函數

println("Test")工具

println(b.toString)

參考:Scala的函數式編程

2.「_」表明任意值。

3.tuple元組

在scala shell中,能夠使用tab鍵進行提示。

建立元組的方式

var tuple1 = Tuple1("localhost", 8888);

var tuple1 = Tuple2("localhost", 8888);

.

var tuple1 = Tuple22("localhost", 8888);

var tuple1 = ("localhost", 8888);

var tuple1 = "localhost" -> 8888;

訪問元組的方式

一個基於1的元素索引訪問它,下標是從1開始的以下

tuple1_1:localhost

tuple1_2:8888

4. def max(x:Int, y:Int):Int = {……}

在scala中,scala編譯器是沒法推斷函數的參數類型的,因此必須顯示的註明函數的參數類型。

5.若是scala命令行沒法回刪,更改終端爲Linux,在工具使用下面有博文http://my.oschina.net/cjun/blog/610402

6.scala命令行若是想換行,必須的是一個完整的語句再進行換行,不然會報錯。

7.case object AAA {}至關於java的java bean,不用設置set和get方法,scala會自動幫咱們加上set和get方法。

8.在命令行使用scala的時候:scala xxx.jar,後面加類路徑(scala xxx.jar com.bigdata.xxx)是沒用的,因此須要在插件maven-assembly-plugin裏面指定mainClass屬性,來設置主類,若是不設置,就會提示java.lang.NullPointerException

9.傳入函數的參數都是不可變的,是val類型的。參考:Scala基本語法和概念

相關文章
相關標籤/搜索