Scala 学习心得(一)

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

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

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

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

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


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

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

[quote]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. [/quote]


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

[quote]No side effects or vars in sight. [/quote]

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

Scala 的开头给了我们一种很…迷人的境界,我希望进一步的了解学习 Scala.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值