日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Scala 学习笔记(2)

發布時間:2025/3/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Scala 学习笔记(2) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

一、條件表達式,if else是可以返回值的,if (x > 0) 1 else -1,這個表達式的返回值是Int類型,-1或者1。所以可以這么寫val i = if (x > 0) 1 else -1 ,其實我更喜歡這么寫 if (x > 0) i=1 else i=-1,前者更加函數化,用val就行,后者更加指令化,必須用var。

二、Unit,if (x > 0) 1,x > 0的話,返回值是1,這個沒有問題,可是x < 0怎么辦呢?這個表達式沒有返回值,沒關系,Scala當中有一個Scala.Unit,寫作(), 就相當于void 。

三、關于分號,scala當中可寫可不寫,但有一種情況必須寫,一行寫了多個語句,其實這個事不知道也行,干嘛非要一行寫多個語句。

四、塊表達式,java當中也有差不多的東西,不同的是,scala這東西也是有返回值的,返回值就是 x + y ,最后一句話是x + y,這在java當中是不可理解的東西,但是scala當中,這個就相當于是這個塊表達式的返回值。

val res = { val x = 10; val y = 20; x + y }

五、While,scala和java沒有明顯區別,按照我的理解,while是比較指令化的東西,在scala當中盡量避免使用。

六、For, for(i <- 1 to 10) println(i),這是scala當中for的典型樣子,跟java當中for (String str : String[])寫法是類似的,這個東西在scala當中常用,下面有更詳細的介紹。

七、高級for循環,1、多層循環不用寫多個for;2、for的括號內,可以寫很多語句;3、每個生成器后面可以帶一個守衛

for (i <- 1 to 10 if i % 2 == 0; toValue = 5; j <- 1 to toValue if j % 2 == 0) println(i, j)

八、for推導式,for語句之所以在scala當中更加受寵,因為它也能有返回值。下面語句的返回值是Vector((2,2), (2,4), (4,2), (4,4), (6,2), (6,4), (8,2), (8,4), (10,2), (10,4))

for (i <- 1 to 10 if i % 2 == 0; toValue = 5; j <- 1 to toValue if j % 2 == 0) yield (i, j)

九、函數,不需要return,最后一個表達式的值就是返回值,也就是x或者-x

def abs(x : Int) = if (x > 0) x else -x

十、默認參數和帶名參數,這里充分體現了scala的靈活性

def concat(value : String, left : String = "[", right : String = "]") = left + value + right

十一、變長參數,終于又減到一個跟java差不多的概念

def sum(args : Int*) = {累加操作}

十二、過程,這里其實也跟java差不多,void開頭的方法在java當中可以稱之為過程,而在scala當中,沒有返回值的函數,也可以稱之為過程,不過在scala當中,強調的是函數化的編程,所以,一個函數返回值以外的操作,被稱之為副作用。過程有以下兩種寫法:

def printSelf(str: String) {print(str)}或 def printSelf(str: String) :Unit = {print(str)}

十三、lazy val變量的延遲加載,在第一次訪問的時候,在實際加載值

十四、異常,無受檢機制,也有返回值,Nothing

轉載于:https://my.oschina.net/dongtianxi/blog/731277

總結

以上是生活随笔為你收集整理的Scala 学习笔记(2)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。