上一篇博客我對scala做了最基本的講述吧,主要是我就知道那么多,哈哈,好啦,今天我們看看在任何語言中我們用的最多的兩種語句吧。一猜就中,for和if語句。 當然開始之前我們還是說一下在scala中的變量的定義怎么來。
在scala中如果要定義變量,我們通常有兩種方式,如下:
var count0 = 0 var name0 = "" var num0 = 0.111 val count1 = 0 val name1 = "" val num1 = 0.111在scala中,var表示的是可變的變量,也就是我可以取做count0+=1的操作,但是count1 += 1就是不行的,編譯的時候就會報錯,切忌這一點,其他的話,scala他會自動識別數據類型,例如count0就是Int類型,name0就是字符串類型,num0就是double類型的。
其實if語句和java的if語句幾乎沒什么差別,要說差別的話,可能就是在scala里邊一句話的結束是不需要“;”的,我能想到的也就是這個了。來看一下例子。
@Test def testIf(): Unit = { val flag = true if (flag) { if…else其實這也沒什么好說的啦,直接上代碼更直接
@Test def testIfElse(): Unit = { val flag = true if (true) { println("flag::::" + flag) } else { println("flag::::" + flag) } //flag::::true }在我們做判斷的時候最常用的就是這三種了,但是我們發現其實這三種和別的語言的判斷語句幾乎是沒什么差別的,要說差別,可能就是沒有哪個”;”了吧。
while的語句特點就是選判斷,然后做處理,例如
@Test def testWhile(): Unit = { var count = 0 var sum = 0 while (count < 10) { sum += count count += 1 } count = 10 while (count < 0) { sum += count count -= 1 } println(sum) }他們兩個的輸出結果都是45沒什么差別。 當然有了while就必須有doWhile
當然一樣的是do…while的語句特點就是先處理在判斷,這點要注意,其他的地方暫無處理。哈哈。
List是scala的集合,這點我們以后會講,這里主要講的是循環,看上去是不是超簡潔。不想java里邊,
for(int i=0; i<numList.size();i++){ system.out.println(a);}這還是簡介了一部分,接下來還有更好玩的的。
代碼如上,我們如果需要做一些處理,就可以再()里邊直接加判斷條件,多過濾條件可以再a>2后邊加分號繼續做篩選,這樣打印出來的信息就是3456,大家可以想想如果這個語句放到java中會事什么樣子。
當然我們也可以吧上邊篩選的結果存到一個集合里邊,在java里邊大家腦補一下代碼吧,然后看看scala中如何做到的。
@Test def testForYield(): Unit ={ val numList = List(1,2,3,4,5,6) val refVal = for {a <- numList if a>2;if a !=4 } yield a for( a <- refVal){ println( "Value of a: " + a ); } /*Value of a: 3 Value of a: 5 Value of a: 6*/ }scala中有一個關鍵字yield,他會吧集合里邊的數據存放到一個區域,然后我們就可以取出來。就像操作集合一樣。
其實他和for很像,需要注意的是在foreach中如果只有語句代碼,例如print(a),則什么也不需要做,但是如果需要在里邊需要對變量做處理,則需要在each中加入大括號{},其他的一樣啦,大家看看,有沒有比java少一些代碼。
基本語句講完了,其實也沒什么內容,只是感覺他比java少了很多的代碼,所以就吧這些代碼弄出來,其他的倒也沒什么。下一篇我們來看看scala的函數吧。
新聞熱點
疑難解答