
Scala编程语言近来抓住了很多开发者的眼球 如果你粗略浏览Scala的网站 你会觉得Scala是一种纯粹的面向对象编程语言 而又无缝地结合了命令式和函数式的编程风格 Christopher Diggins认为
不太久之前编程语言还可以毫无疑义地归类成 命令式 或者 函数式 Scala代表了一个新的语言品种 它抹平了这些人为划分的界限
根据David Rupp在博客中的说法 Scala可能是下下一代Java 这么高的评价让人不禁想看看它到底是什么东西
Scala有几项关键特性表明了它的面向对象的本质 例如 Scala中的每个值都是一个对象 包括基本数据类型(即布尔值 数字等)在内 连函数也是对象 另外 类可以被子类化 而且Scala还提供了基于mixin的组合(mixin based position)
与只支持单继承的语言相比 Scala具有更广泛意义上的类重用 Scala允许定义新类的时候重用 一个类中新增的成员定义(即相较于其父类的差异之处) Scala称之为mixin类组合
Scala还包含了若干函数式语言的关键概念 包括高阶函数(Higher Order Function) 局部套用(Currying) 嵌套函数(Nested Function) 序列解读(Sequence Comprehensions)等等
Scala是静态类型的 这就允许它提供泛型类 内部类 甚至多态方法(Polymorphic Method) 另外值得一提的是 Scala被特意设计成能够与Java和 NET互 *** 作 Scala当前版本还不能在 NET上运行(虽然上一版可以) 但按照计划将来可以在 NET上运行
Scala可以与Java互 *** 作 它用scalac这个编译器把源文件编译成Java的class文件(即在JVM上运行的字节码) 你可以从Scala中调用所有的Java类库 也同样可以从Java应用程序中调用Scala的代码 用David Rupp的话来说
它也可以访问现存的数之不尽的Java类库 这让(潜在地)迁移到Scala更加容易
这让Scala得以使用为Java 或者 编写的巨量的Java类库和框架 Scala会经常性地针对这几个版本的Java进行测试 Scala可能也可以在更早版本的Java上运行 但没有经过正式的测试 Scala以BSD许可发布 并且数年前就已经被认为相当稳定了
说了这么多 我们还没有回答一个问题 为什么我要使用Scala? Scala的设计始终贯穿着一个理念
创造一种更好地支持组件的语言 (《The Scala Programming Language》 Donna Malayeri)
也就是说软件应该由可重用的部件构造而成 Scala旨在提供一种编程语言 能够统一和一般化分别来自面向对象和函数式两种不同风格的关键概念
藉著这个目标与设计 Scala得以提供一些出众的特性 包括
面向对象风格
函数式风格
更高层的并发模型
Scala把Erlang风格的基于actor的并发带进了JVM 开发者现在可以利用Scala的actor模型在JVM上设计具伸缩性的并发应用程序 它会自动获得多核心处理器带来的优势 而不必依照复杂的Java线程模型来编写程序
轻量级的函数语法
o 高阶
o 嵌套
o 局部套用(Currying)
o 匿名
与XML集成
o 可在Scala程序中直接书写XML
o 可将XML转换成Scala类
与Java无缝地互 *** 作
Scala的风格和特性已经吸引了大量的开发者 比如Debasish Ghosh就觉得
我已经把玩了Scala好一阵子 可以说我绝对享受这个语言的创新之处
lishixinzhi/Article/program/Java/hx/201311/26873
语言不同:Scala 是一门函数式语言,Java是面向对象语言,二者在语言特点上差异特别大。但是scala也是运行在java虚拟机上,两者可以方便的互相调用。
Spark作为一个数据统计分析的工具,它是偏向于函数式处理的思想,因此在spark应用开发时,天然与scala亲近,所以用scala写spark十分的简洁明了,用java代码100行写出来的spark程序,可能用scala几行就搞定了。
Java写spark则是java出生的开发人员快速使用spark的最佳选择。另外,Java 8之后,也添加了一些函数式语言得语法,这使得Java写spark简洁不少。
久闻Scala大名,一直没有契机去学习,趁现在有个机会,去体验一下scala的美妙,在选择IDE的时候,看到有人推荐IntelliJ,以前开发Android的时候,使用过基于IntelliJ的android Studio,感觉良好,所以在Scala学习中,也选择IntelliJ作为开发工具。
配置Java和Scala环境
Java 配置
Mac自带Java,在Terminal中 输入
java -version
输出
Java version “170_79”
Java(TM) SE Runtime Environment (build 170_79-b15)
java HotSpot(TM) 64-Bit Server VM (build 2479-b02, mixed mode)
出现类似信息,说明你的Java环境已配置好。
Scala 配置
手动配置
官网下载地址,选择好版本
然后在网页下方
选择要下载的安装包,下载完成后,移动到你的安装目录,然后解压
我是放到了/usr/local/share/下
mv scala-xxxtgz /usr/local/share/
然后配置环境变量,在Terminal中 vim ~/bash_profile,在里面加入
SCALA_HOME=/usr/local/share/scala
export PATH=$PATH:$SCALA_HOME/bin
保存退出,然后在Terminal中
source ~/bash_profile
使配置文件生效。
在Terminal中,输入
scala version
查看信息,即表示安装成功
自动安装
在Terminal中,使用
brew install scala
这样安装的是最新版本(如果你没有安装 homebrew,请安装好以后,再重试)
如果需要安装以前老版本,比如 Scala 2104 (old version)
brew install homebrew/versions/scala210
安装成功后,在Terminal中,输入
scala version
查看信息,即表示安装成功。
IntelliJ的下载和配置
下载
官网下载地址
如果简单学习,使用社区版即可,如果专业开发,请购买专业版。如果资金充裕,建议购买专业版,不想花钱的话,网上也有很多破解方法,自行查找。
配置
下载完成后,打开IntelliJ,在菜单栏的Preference中,选择Plugins(插件),然后搜索Scala
安装即可,如果安装速度较慢,也可选择下方的Install plugin from disk
自己手动下载好插件进行安装
Hello World
安装好插件,重启IntelliJ,我们就可以开始第一写自己的第一行Scala代码了
选择 Create New Project
点击下一步,为你的项目起一个名字
点击Finish 即可
问题
注意上图中红框部分,看看SDK是否为空,如果为空,选择Create
通过 Download 新下载一个SDK,或者Browse 找到自己在第一步中自己安装Scala的路径,配置好即可。
下面就可以开始你的第一行Hello world了。
@RunWith(Parameterizedclass)
public class Meeting>
以上就是关于Scala编程语言简介全部的内容,包括:Scala编程语言简介、Spark 中用 Scala 和 java 开发有什么区别、如何在mac intellij上写scala程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)