面试腾讯的时候突然问我这个问题,闲来无事总结一下。
- 写scala的代码更容易表达思路。也就是你脑子想到那你就可以写到哪,但是这个是优点也是缺点,这种方式编写的代码易写难懂,拓展性差。当然这种优点只是个人感觉,因为scala的是一个多范式语言,他也能像java那样编写出架构精巧,扩展性强的代码。
- scala具有优秀的类型推断功能。比如定义:
val s = "name"
.这样的代码,不需要显示声明,就能知道s是String类型的变量。 - scala推荐使用val类型的不可变变量,优点主要有两个:一是便于调试,追踪和阅读代码,因为在程序中,val类新的变量总是不变的。二是在多线程编程时,不用为不可变变量编写复杂的同步代码来保证数据的安全性。
- 面向对象编程通过封装不确定性因素来使代码能被人理解;函数式编程通过尽量减少不确定性来事代码被人理解