【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 语法大概就这样,入门够用了