函数的嵌套
代码
//方法的嵌套
object MethodDemo extends App{
//factor方法
def factor(x:Int):Int={
//嵌套方法
def fact(x:Int,accumltor:Int):Int={
if(x<=1){
//println("accumltor(if)="+accumltor)
accumltor
} else {
//println("accumltor(else)="+accumltor)
//递归
fact(x-1,x*accumltor)
}}
//返回调用嵌套方法的得到的返回值
fact(x, 1)
}
println("factor of 3:"+factor(3))
//赠送 : 方法多态
//方法多态:方法可以通过类型实现参数化,类似泛化
def listOfDuplic[A](x:A,length:Int):List[A]={
if(length<1)Nil
else {
x :: listOfDuplic(x, length - 1)
}
}
println(listOfDuplic[Int](3,length = 0))
println(listOfDuplic[Int](3,length = 4))
println(listOfDuplic(3,length = 4))
println(listOfDuplic("ss",length = 5))
}
运行结果
factor of 3:6
List()
List(3, 3, 3, 3)
List(3, 3, 3, 3)
List(ss, ss, ss, ss, ss)
Process finished with exit code 0