【scala初學】scala 語法 for

    上一章我寫了scala基本類型,而且在開頭弄個「黑暗料理」嚇唬你們。。。這一章寫scala的循環 forjava

 

首先定義一個方法,而後在main方法中運行程序員

def for_1={
var greeting = "x"
for (i <- 0 until 10) {
println((greeting += i)) //無任何返回值
println(greeting)
}
}

若是是java語言,咱們一般這樣ruby

String greeting="x";
for(int i=0;i<10;i++)
{
System.out.prinln(greeting+=i)
}

再看看rubyide

for i in 0..(args.size - 1)
greeting += args[i] + " "
end

繼續說,運行測試,在main方法中測試for_1方法函數

def main(args: Array[String]) {
for_1
}

 

到這裏我以爲各位也能發現一些問題(從java程序員角度),我簡單解釋下:測試

1. 方法的定義spa

def開頭 有參數加括號,有返回值,須要標註返回類型,如scala

def for_1_2(x:Int):Int={
var m = 1
println(x)
m
}

2.  關於特殊符號 <-generator

1. keyword
2. Used on for-comprehensions, to separate pattern from generator

以上是對符號<-  的解釋,意思就是 源碼

a. 他是關鍵字

b. 他用於for循環邏輯,用於遍歷

 

下面,咱們講看到for循環的幾個變種, 也多是在spark源碼中遇到次數較多的

第一次變種:

def for2={
val range = 0.until(10)
for (i <- range) {
println(i)
}
}

第二次變種,加上個參數:

def for3(args: Array[String]){
var greeting = "";
args.foreach { arg =>
greeting += (arg + " ")
println(greeting);
}
//arg是臨時變量
var range = 0.until(10)
range.foreach { arg =>
greeting += (arg + " ")
println(greeting);
}
}

第二個特殊符號出現 「=>」 在最後解釋吧

第三次變種,爲了下一次變種作鋪墊,我去掉了函數定義:

var greeting = "";
//在foreach 後面加上了括號
args.foreach ({ arg =>
greeting += (arg + " ")
})

第四次變種:

args.foreach(arg => greeting += (arg + " "))

最後:

回顧這篇文章 幾個比較特殊點

1. unitl

scala.runtime 包下面的RichInt until 方法  用於for循環 舉例

for (i <- 0 until 10) {}
//或者
var range = 0.until(10)

2. <-

a. 關鍵字

b. 用於遍歷

3. =>

1. keyword
2. Used for function types, function literals and import renaming

 a. 關鍵字

 b. 用戶 for函數的類型, 函數文本 和 導入改名。在for裏做用同符號 <- ,導入改名。

4. 函數的定義

def for_6(x:Int):String={
var m = 1
println(x)
m+""
}

m+"" 是返回的String

for 語法大概就這樣,入門夠用了

相關文章
相關標籤/搜索