本章内容
- Scala不是Java
- Scala语法及更加函数化的风格
- match表达式与模式
- Scala的类型系统和集合
- Scala并发之actor
Scala是出自学术界和编程语言研究社区的语言。由于其强大的类型系统和先进特性,又有精英团队证明了其价值,它已经赢得了一定数量开发者的青睐。
现在Scala里有很多有意思的地方,但要评判它能否完全渗入Java生态系统,以及能否挑战Java语言的霸主地位,还为时尚早。
最合理的预测是Scala会被更多的团队接受,并最终被项目采纳。在接下来的三四年中,我们预计会有大量开发人员在项目中见到Scala的身影。也就是说作为优秀的Java开发者,你应该了解它,能判断出它是否适用于自己的项目。
例子 金融风险模拟应用可能需要采用Scala新颖的面向对象方式、类型推断、灵活的语法、新的集合类(包括自然的函数式编程风格,比如映射/过滤器惯用语),以及基于actor的并发模型。
对于Java开发人员来说,刚开始接触Scala时最应该牢记于心的是:Scala不是Java。
这看起来似乎是显而易见的。毕竟,每种语言都不同,Scala当然也和Java不一样。但我们在第7章提到过,有些语言非常相似。第8章介绍Groovy时也在强调它和Java相似的地方。希望这些内容在你首次探索Groovy这门非Java JVM语言时能够对你有所帮助。
本章我们想做点不一样的事情,先突出Scala中一些非常独特的语言特性。我们喜欢把这比喻成“Scala的宜居之所”,告诉你怎么写Scala代码才不会像是从Java翻译过来的。之后我们会阐述项目问题,搞明白Scala是不是适用于你的项目。然后,我们看一些Scala在语法上的创新,这些创新让Scala代码变得即简洁又漂亮。接下来是Scala处理面向对象的方式,然后是一节介绍集合和数据结构的内容。最后收尾的一节是关于Scala并发和它强大的actor模型的内容。
在讨论Scala的独特性时,我们会一并解释它的语法(以及其他必要的概念)。跟Java比,Scala是一门相当庞大的语言,需要掌握的基础概念和语法点更多。这就是说你要做好心理准备,随着接触到的Scala代码越来越多,你需要自己花时间和精力去更多地探索这门语言。
我们先来大体看一下后面会遇到的一些主题。这能帮你熟悉Scala不同的语法和思维方式,并帮你打下基础,以便更好地学习新知识。