1.Scala函数的参数默认值
Scala可以为函数参数指定默认值,这样在调用函数中可以不需要传递参数,这时函数就会调用其默认值。如果传递了参数,则传递值会取代默认值。
object dd {
//参数有默认值的函数,函数名(参数名1:类型=默认值1,参数名2:类型=默认值2)
//有了默认值之后,如果没有传入参数,就使用默认值
def fn(a:Int = 1,b:Int=2):Int={
println(s"a=$a,b=$b")
a+b
}
def main(args: Array[String]): Unit = {
println( fn())
println(fn(100))
println(fn(200))
println(fn(100,200))
}
}
2.Scala的函数参数的变参
功能:求所有参数的累加
变参的特点:参数的个数是不确定的
思路:找一个容器吧参数全部装起来!
写法:参数类型后边加*(b(strs:String*))
def getSum(args:Int*):Unit={
println(args)
var sum = 0
for(i <-args){
println(i)//i就是一个一个的参数
sum +=i
}
}
def main(args: Array[String]): Unit = {
// println( fn())
// println(fn(100))
// println(fn(200))
// println(fn(100,200))
var s= getSum(1,2,3)//6
println(s)
getSum(1,2,3,10)//16
println(getSum(2,3))//5
}
}
3.Scala的函数链式风格
链式风格并不是一种语法而是一种设计模式,通过一些编程技巧实现链式风格编程。
class Stud(){
//函数写在class内部,就叫方法
//在方法中返回this
//返回Stud方法
def sayHello():this.type ={
println("sayHello...")
this//返回值
}
def run():Unit={
println("running")
}
def sleep():this.type ={
println("sleeping.......")
this
}
}
object ddd {
def main(args: Array[String]): Unit = {
//创建对象
var s1 = new Stud()
//2.调用方法
s1.sayHello().run().sleep()
如何设置函数的默认参数?
在参数列表中补充=默认值
如何实现链式风格?
在方法中返回this