成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Scala有哪些表達式

本篇內(nèi)容介紹了“Scala有哪些表達式”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

我們提供的服務(wù)有:網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、普陀ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的普陀網(wǎng)站制作公司

一、條件表達式

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,前者更加函數(shù)化,用val就行,后者更加指令化,必須用var。

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

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

四、塊表達式

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

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

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

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

七、高級for循環(huán)

1、多層循環(huán)不用寫多個for;

2、for的括號內(nèi),可以寫很多語句;

3、每個生成器后面可以帶一個守衛(wèi)

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

八、for推導(dǎo)式

for語句之所以在scala當(dāng)中更加受寵,因為它也能有返回值。下面語句的返回值是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)

九、函數(shù)

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

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

十、默認參數(shù)和帶名參數(shù),這里充分體現(xiàn)了scala的靈活性

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

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

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

十二、過程

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

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

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

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

“Scala有哪些表達式”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

分享文章:Scala有哪些表達式
分享鏈接:http://jinyejixie.com/article32/ipjepc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、App開發(fā)域名注冊、外貿(mào)建站定制開發(fā)、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
灵川县| 岳西县| 图木舒克市| 吉水县| 隆德县| 阿克陶县| 天镇县| 宣化县| 中西区| 宾川县| 汨罗市| 江阴市| 晋中市| 许昌市| 杭锦旗| 庄浪县| 右玉县| 宾阳县| 隆化县| 天峨县| 富蕴县| 亳州市| 威海市| 屯昌县| 桂林市| 兴业县| 凯里市| 兴安县| 马山县| 嵊泗县| 潢川县| 绥芬河市| 从化市| 婺源县| 景德镇市| 牟定县| 大方县| 巫溪县| 三明市| 贵德县| 峡江县|