知识库 : Scala 是一个什么样的语言

简单介绍一下。
首先scala是运行在jvm上的,也就是说scala会被编译为和java编译后的class一样的字节码。这也代表scala和java是可以互相调用并且它们可以联合编译,不过实际上来说scala调用java很容易,而java调用scala会遇到一些问题。

其次scala是一个静态类型的语言,它通过类型推断来隐藏大部分的类型声明信息,让它的语法达到动态类型语言的简洁程度。但因为scala的静态类型特点,它的性能接近原生的java,高出groovy相当多。

再次scala同时提供两种编程范式的支持,OOP和FP,面向对象编程和函数式编程。

scala在java的基础上引进了很多现代高级语言的特性,比如闭包、对DSL的友好支持、trait的混合以及扩展已有类型能力的方法(通过隐式转换)。但也因为scala引入的这些特性,使scala的语法显得独特并且有很多特例,对于刚开始接触scala的人来说,看scala代码经常会看的云里雾里的。

另外scala支持的FP范式和actor模型让scala的高并发编程相对java来说更清晰易读,容易实现。

 

 

简单比较

 scalagroovyjava
语法独特,类动态语言类似javajava
类型系统静态动态静态
性能
表达力
灵活度较好
易读

 



个人认为scala是一个很有魅力的语言,如果是只接触过C一族语言(C/C++/Java)的人应该会从scala看到很多新鲜的东西,好的语言让人有去把玩它用它创造东西的欲望。