1.30

递归
递归就是方法自己调用自己

示例:求阶乘

object ClassDemo {

def f(n: Int): Int = if(n == 1) n else n * f(n - 1)

def main(args: Array[String]): Unit = {
println(f(5))
}

}

内存图解
Scala 中,内存分为五部分

所有代码的执行、存储局部变量。

按照 FILO 的顺序执行,方法执行完毕后立马被回收。

存储所有new 出来的对象。

在不确定的时间被垃圾收集器回收。

方法区

存储字节码文件,方法等数据。

程序执行完毕后,由操作系统回收资源。

本地方法区

和本地方法相关。

寄存器

和 CPU 相关。

斐波那契数列
已知数列1,1,2,3,5,8,13,求第12个数字。

object ClassDemo {

def f(n: Int): Int = {
if(n == 1 || n == 2)
1
else
f(n - 1) + f(n - 2)
}

def main(args: Array[String]): Unit = {
println(f(12))//144
}

}

案例:打印目录文件
定义 printFile 方法,该方法打印该文件夹下所有文件路径。

object ClassDemo {

def printFile(dir: File): Unit = {
if(!dir.isDirectory)
println("路径不合法")
else {
//获取该目录下所有文件及文件夹
val files:Array[File] = dir.listFiles()
for(listFile <- files){
if(listFile.isDirectory)
printFile(listFile)
else
println(listFile)
}
}
}

def main(args: Array[String]): Unit = {
printFile(new File("d:/"))
}

}

posted @ 2025-02-07 13:58  七安。  阅读(13)  评论(0)    收藏  举报