分享

Scala 学习心得(一)

 看风景D人 2016-10-07
 Scala 是一种整合了面向对象特性并且又具有函数思想的语言。它同样也是一种脚本语言,简洁高效,的确令我喜爱。它虽然和 Java 有着千丝万缕的联系,但是单纯的从语法上说,有一些和 Java 还是存在比较大的差异。比如说,new 一个 String 类型的数组和 Java 类似:

new Array[String], 就可以了,但是对于访问这个数组中的元素,用圆括号而不是方括号,也就是说,Scala 中访问数组元素应该是这种形式:[code ="scala"]greetingStrings(0) = "hello"

,  这一点和 Java 和 C++ 都存在差异,这一点在后面写代码的过程中我们需要注意。

同样,Scala 语言的简洁性也是令我十分欣赏的地方。比如,新建一个 String 类型的数组,不需要声名数组类型,也不需要 new, 直接写成:

val numNames = Array("zero", "one", "two")


, 和 Java 一样,Array 也是从 0 开始数元素的个数的。

现在来说,对于 Scala 语言感受最深的地方在于它强大到设计模式(可能是部分?还没看到后面去)都变得无足轻重。Design Patterns in Scala(http://memuser./2008/03/design-patterns-in-scala.html
)这篇 Blog 中将 Scala 实现 5 种设计模式进行了清楚的描述。他在 Blog 的结尾说:

引用
However, most of them generally solve a language issue than a design issue. If you have a good Language patterns (at least most of them) will become trivial.




关于 Scala 的对象和函数。Scala 不像 Java, Scala 去掉了 Java 中的基本数据类型,例如,Java 中的基本数据类型 int, 如果要转换成对象,需要进行装箱和拆箱的步骤,而 Scala 中 Int 类型直接就是对象。从这个角度上来说,Scala 是一种完全面向对象的语言。关于 Scala 的函数特征,给我印象最深刻的是,

引用
No side effects or vars in sight.


Scala 中,力求做到函数无副作用,也就是说,每个函数要求有一个返回值,只干一件事情。这种对于函数的要求在 Java 和 C++ 中都是没有体现的。在 Scala 的函数中,如果没有显示的声名返回值是什么,它会自动返回最后一个计算的结果,这一点会在后面的代码调试中带来一定的难度,我们有必要在项目开发的代码规范中加入这样一条:Scala 每一个函数都必须显示的声名返回值。

Scala 的开头给了我们一种很…迷人的境界,我希望进一步的了解学习 Scala.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多