Scala有哪些表達式

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

我們提供的服務有:網(wǎng)站建設、成都網(wǎng)站設計、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、普陀ssl等。為成百上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的普陀網(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)]有返回值,沒關系,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沒有明顯區(qū)別,按照我的理解,while是比較指令化的東西,在scala當中盡量避免使用。

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

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

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

2、for的括號內,可以寫很多語句;

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推導式

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)

九、函數(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當中可以稱之為過程,而在scala當中,沒有返回值的函數(shù),也可以稱之為過程,不過在scala當中,強調的是函數(shù)化的編程,所以,一個函數(shù)返回值以外的操作,被稱之為副作用。過程有以下兩種寫法:

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

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

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

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

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

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

廣告

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

成都網(wǎng)站建設