开发者学堂课程【Scala 核心编程 - 进阶:使用递归的思想去思考和编程】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/610/detail/9097
使用递归的思想去思考和编程
内容介绍:
一、基本介绍
二、cala 提倡函数式编程(递归思想)
三、应用实例
一、基本介绍
Scala 是运行在 Java 虚拟机(Java Virtual Machine)之上,因此具有如下特点:
1.轻松实现和丰富的Java 类库互联互通。
2.它既支持面向对象的编程方式(oo),又支持函数式编程。
3.它写出的程序像动态语言一样简洁,但事实上它确是严格意义上的静态语言。
4. Scala就像一位武林中的集大成者,将过去几十年计算机语言发展历史中的精萃集于一身,化繁为简,为程序员们提供了一种新的选择。设计者马丁·奥得斯基希望程序员们将编程作为简洁,高效,令人愉快的工作。同时也让程序员们进行关于编程思想的新的思考。
二、scala 提倡函数式编程(递归思想)
先说下编程范式:
1.在所有的编程范式中,面向对象编程(Object-Oriented Programming〉无疑是最大的赢家。
2.但其实面向对象编程并不是一种严格意义上的编程范式,严格意义上的编程范式分为:命令式编程(Imperative Programming)、函数式编程(Functional Programming)和逻辑式编程(Logic Programming)。面向对象编程只是上述几种范式的一个交叉产物,更多的还是继承了命令式编程的基因。
3.在传统的语言设计中,只有命令式编程得到了强调,那就是程序员要告诉计算机应该怎么做。而递归则通过灵巧的函数定义,告诉计算机做什么。
因此在使用命令式编程思维的程序中,是现在多数程序采用的编程方式,递归出镜的几率很少,而在函数式编程中,大家可以随处见到递归的方式。
三、应用实例
scala 中循环不建议使用 while 和 do...while,而建议使用递归。
应用实例要求:
计算1-50的和
常规的解决方式
val now: Date = new Date(
)
val dateFormat: SimpleDateFormat =
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
val date = dateFormat. format(now)
println("date=" + date)//输出时间
var res = Biglnt(O)
var num = Biglnt(1)
var maxVal = Biglnt(99999999
I
)//BigInt(99999999I)[测试效率大数]
while (num= maxVal){
res += num
num += 1
}
println("res=" + res)