1、函数定义
def 方法名字(参数名:参数类型):返回值类型 = {
if (x > y) {
x
} else {
y
}
}
2、最后一行就是返回值
def add(x:Int, y:Int):Int = {
x + y
}
3、当返回值类型确定时,可以不用写返回值
def three() = 1 + 2
println(three())
println(three)
4、没有返回值时的简写
def sayHello(): Unit = {
println("Hello ...")
}
5、默认参数值
loadConf()
loadConf("Spark-production.conf")
def loadConf(conf:String = "Spark-defaults.conf"): Unit = {
println(conf)
}
6、不按序传参
def speed(distance:Float, time:Float):Float = {
distance / time
}
println(speed(distance = 100, time = 10))
println(speed(time = 10, distance = 100))
7、可变参数(在参数类型后面加星号,表示可以多个参数)
def sum(numbers:Int*) = {
var result = 0
for (number <- numbers) {
result += number
}
result
}
println(sum(1, 2, 3))
println(sum(1, 2, 3, 4, 5))
8、条件表达式
val a = if (x > 0) 1 else if (x == 0) 0 else -1
9、循环表达式 to
1 to 10
1.to(10)
10、循环表达式 Range
Range(1, 10)
Range(1, 10, 2)
Range(1, 10, 4)
11、循环表达式 for
for (i <- 1 to 10) {
println(i)
}
12、循环表达式 foreach
val courses = Array("Hadoop", "Spark SQL", "Scala")
courses.foreach(course => println(course))
13、循环表达式 while
var (num, sum) = (100, 0)
while (num > 0) {
sum += num
num -= 1
}
println(sum)