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.blogspot.com/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.
分享到:
相关推荐
Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 Scala 运行在Java虚拟机上,并兼容现有的Java程序。 Scala 源代码被编译成Java字节码,所以它可以运行于...
学习Scala需要对函数式编程有所了解,并准备接受从传统的指令式编程思维到函数式编程思维的转变。通过不断实践和深入理解Scala的各种特性,开发者可以更好地利用这种强大且灵活的语言进行软件开发。
读书笔记:Scala之旅。阅读《Scala编程实战》记录阅读笔记和心得帮助更多的人学习和使用Scala语言
Scala 是一种 modern 的编程语言,具有强大的功能和灵活性。Spark 的 Scala API 提供了灵活的编程接口,能够满足不同的应用需求。 本实验提供了一个简单的 Spark 安装与使用指南,帮助读者快速入门 Spark 的世界。
这个压缩包中的两个文件,"一、CRM笔记.md"和"二 、CRM笔记.md"(可能其中一个文件名有误,此处假设它们是不同的笔记),都是Markdown格式的文档,通常用于记录学习心得或教程。 首先,我们来深入了解一下CRM系统。...
#### 一、大会概况与心得概述 2016年的中国云计算技术大会是一次集思广益、汇聚行业精英的盛会。本次大会不仅展示了最新的云计算技术和趋势,还深入探讨了云计算在当前大数据时代的重要作用。通过参加此次大会,我...
笔记可能是个人学习Spark过程中的总结,包含了对某些主题的独特见解和实践心得。 通过这一系列的学习资料,读者可以逐步建立起对Spark的全面认知,从基础到高级,从理论到实践,逐步提升大数据处理的能力。无论是...
总之,“note2”可能记录了你在学习或研究《Functional Programming in Scala》过程中的心得、问题和解决方案,而“fpinscala”文件可能是你实现书中练习或案例的源代码。函数式编程不仅能够提高代码质量,还有助于...
"Qiita"是日本的一个知名技术分享平台,类似于GitHub,用户可以在上面发布文章、代码片段,分享自己的技术心得。"scala"则表明这个客户端是使用 Scala 语言编写的,Scala 是一种多范式的编程语言,结合了面向对象和...
- **支持多语言**:除了 Java 外,Greenfoot 还支持其他编程语言,如 Groovy 和 Scala,这为有兴趣探索更多语言的用户提供了一个平台。 #### 七、总结 《使用 Greenfoot 进行编程入门》不仅是一本优秀的 Java 编程...
Scala是一种多范式编程语言,它融合了函数式和面向对象编程。Scala支持高阶函数和模式匹配,并且能够运行在Java虚拟机上,充分利用了JVM的生态系统。 8. F# F#是.NET框架的一部分,它是基于ML的,同时兼容C#和VB...
- **MLlib**:一个机器学习库,包含许多常用的机器学习算法。 - **GraphX**:用于图形处理的库,可以高效地执行图算法。 **2.3 Spark 核心功能详解** - **Spark Core**:负责提供基本的分布式数据集抽象 Resilient...
Akka笔记 Akka消息 文档 源代码 从 Akka记录 文档 源代码 从 Akka测试 文档 源代码 从 Akka消息传递请求和响应 文档 源代码 从arunma / AkkaMessagingRequestResponse分叉
【函数式编程实验报告】 ...这些基础技能对于学习和理解其他函数式语言,如Haskell、Lisp或Scala等,都至关重要。通过实际操作,学生可以更好地掌握函数式编程的思维方式,提高代码的简洁性和可读性。
7. **Scala** - Martin Odersky设计的多范式语言,融合了面向对象和函数式编程,广泛应用于大数据处理和Akka框架。 这些语言的兴盛与没落往往与时代需求和技术趋势密切相关。例如,随着并行计算和云计算的发展,...
通常,这个环境包括硬件设备(如高性能服务器或云计算资源)、操作系统(如Linux或Windows)、大数据处理框架(如Hadoop、Spark)以及相关的编程语言和工具(如Java、Python、Scala和SQL)。在报告中,应详细描述所...
- 人工智能和机器学习:函数式编程语言如Haskell和Scala被用于构建复杂的算法模型。 - 并行和分布式计算:函数式编程的无副作用和纯度使其在并行和分布式系统中能够更好地进行资源管理和错误控制。 2. 实验问题分析...
- **协同过滤算法的实现**:利用Python或Scala编写推荐算法代码。 - **Node.js 的安装和使用**:实现前后端分离的应用程序。 - **实现用户注册及登录功能**:构建安全稳定的用户认证机制。 - **实现推荐/行为分析...
7. **论坛和讨论区**:学员可以在这里提问、交流学习心得,王教授和其他专家可能参与解答问题。 通过这个课程,学员不仅可以掌握大数据的基础知识,还能了解到IBM在大数据处理和分析方面的最新技术和工具,提升自身...