AiTi修炼|重剑无锋,拈花微笑 | IT修炼,技术fans.重剑无锋,拈花微笑才是最高境界,聊以此站记录一些个人学习、思考以及感悟Java,Scala,Spark,Hadoop,Storm,Nodejs,RSpark,Storm,Hbase,Hive,Flume等IT技术的历程 | Page 25
  • Home
Header
Header
$pageNumDef = 0;

认识Scala的神秘面纱

在Scala的官网有一篇关于“WHAT IS  SCALA”的介绍(详细见官网地址),告诉我们Scala语言的名称来自于“可伸缩的语言”,是一门多范式的编程语言,其设计初衷是要集成面向对象编程和函数式编程的各种特性,使用一种能够完全兼容Java、可以运行在Java虚拟机上的、简洁的语法,结合了面向对象编程与函数编程思想。
正是由于对于函数编程风格的支持,尤其是对于Lambda表达式的支持,所以对于踏入scala世界学习的人员,经过一段时间的实践使用,都会深刻体会到scala这些特性能够有助于减少必须要编写的逻辑无关固定代码,让人可以更“简单”地关注核心业务本身,领略到Scala世界的奇妙。
在初步探究Scala的学习道路上,有必要先整体了解Scala的特性,以便在后续学习上结合实际实践,加深理解与应用。总的来说,Scala具有以下的特性:

  • 面向对象特性

Scala就像一个高雅的武林高手,集齐了面向对象的优点,还容纳了其他派别的长处,作为多范式编程语言,支持面向对象编程,其本身还是一种纯面向对象的语言,在解决面向对象多重继承的种种问题方面,Scala采取两种途径解决,一种途径是子类继承,另一种途径是灵活的混入(Mixin)机制。

  • 函数式编程

Scala也是一种函数式语言,其函数也能当成值来使用,函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念,Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,在Scala中不强求开发者使用函数式编程,不强求变量都是不可变的(通过val定义的),但是还是鼓励使用函数式编程。现在的计算机都是多核CPU,想充分利用其多核处理,我们需要写可并行计算的代码。而函数式编程在并行操作性有着天生的优势,函数式编程没有可变变量,那么就不会有内存共享的问题,也不会产生副作用(side effect)的函数。

  • 支持静态类型

Scala具备强大的静态类型推断特性,通过编译时的检查,保证代码的安全性和一致性。

  • 具良好扩展性

Scala提供了许多独特的语言机制,可以以库的形式轻易无缝添加新的语言结构,具有良好的扩展特性。
 
 

rscala.com版权所有,本文认识Scala的神秘面纱
转载请注明出处:http://rscala.com/index.php/12.html