天天看點

9.1 scala介紹與安裝

Scala是一種針對 JVM 将函數和面向對象技術組合在一起的編 程語言。 它看 起來像是一種純粹的面向對象程式設計語言,而又無縫地結合了 指令式和函數式的程式設計風格 Scala的名稱表明,它還是一種 高度可伸縮的語言 Scala的設計始終貫穿着一個理念:創造 一種更好地支援元件的語言 Scala融彙了許多前所未有的特 性,而同時又運作于 JVM之上 Scala特點: Scala可拓展 – 面向對象 – 函數式程式設計 – 相容JAVA – 類庫調用 – 互操作 – 文法簡潔 – 代碼行短 – 類型推斷 – 抽象控制 – 靜态類型化 – 可檢驗 – 安全重構 – 支援并發控制 – 強計算能力 – 自定義其他控制結構 scala環境安裝: scala-2.10.4.msi -->相當于Javajdk windows環境直接安裝,注意需要提前安裝好jdk1.7,和安裝路徑不要有中文和空格 要是安裝正确,環境變量自動配置好了 驗證:

9.1 scala介紹與安裝

聲明與定義(指派): val,常量聲明 不能重新指派 var,變量聲明 和Java的變量一緻 def,函數聲明 s:拼接字元串 val name = "James“ val age = 22 println(s"Hello, $name") println(s"$name is ${age + 2} years old.") f:類型轉換 val height = 1.9 println(f"$name%s is $height%.2f meters tail") r:相當于正則 r”a\nb” 對比 raw”a\nb” implicit 隐式轉換和隐式參數使用 var t = List(1,2,3,5,5) list集合 println(t. map( x => {x+2})) map對集合裡面的每個元素進行操作,有傳回值,這裡傳回一個新的List t. foreach(a=>print("---+++"+a)) foreach周遊 println("/--***---"+t. distinct) distinct去重複 println(t. sortBy{ x => -x }) sortBy自定義排序 println("---+**Slice"+t. slice(0, 2)) slice切割擷取區間 println(t. reduce( (a,b) => a+b )) reduce就是對集合裡面的每個元素依次進行操作 println(t. filter ( _ > 3 )) filter 過濾 println(t. take(3)) take取前幾個 t. foldLeft(0) 帶參數的reduce var tuple01 = (1,2,3,5) 元組 下标從1開始 經典例子: object test {      def sum(f : Int => Int):(Int,Int)=>Int={     def sumF(a : Int,b : Int):Int =       if(a>b) 0 else f(a) + sumF(a+1 , b)      sumF   } //周遊   def test()={     for(a <- 1 to 100){       println(a)     }   } //多個參數累加   def sum(elem : Int*)={     var temp=0     for(e<-elem){       temp += e     }     println(temp)   } // => 匿名函數聲明方式 val t = ()=>{333;"xururyun"}//聲明了一個函數對象付給了t   def main(args: Array[String]): Unit = { // val a = sum(x=>x) // println(a(2,3)) // test()     sum(1,2,3)     sum(1 to 5 :_*)   } }