简介
Scala 是由瑞士苏黎世联邦理工学院(EPFL)的教授和德国计算机科学家 Martin Odersky 设计的。Martin 在 2001 年开始创建 Scala,并于 2004 年首次发布。
Scala 是“可扩展语言”的缩写。它是一种通用编程语言,面向对象,与 Java 编程语言有诸多相似之处。它提供了对函数式编程的支持。Scala 许多设计决策都是为了克服 Java 编程语言的不足。
Scala 提供的一些特性包括:
-
Scala 的源代码可以编译成 Java 字节码,因此可以在 Java 虚拟机(JVM)上执行。
-
它提供了与 Java 的语言互操作性,因此用任一语言编写的库都可以在 Scala 或 Java 代码库中引用。
-
像 Java 一样,Scala 也使用花括号语法。
-
它具有许多函数式编程语言(如 Scheme、标准机器学习和 Haskell)的功能,包括柯里化、类型推断、不可变性、惰性求值和模式匹配。
-
支持使用JavaScript的Web应用程序。
-
与Java不同,Scala还支持操作符重载、可选参数、命名参数和原始字符串。
关于Scala的一个有趣事实是,由于其可扩展性和后端操作能力,它被苹果、推特、沃尔玛和谷歌等公司广泛使用。
在Jupyter Notebook中设置Scala
Jupyter Notebook是计算机科学中最广泛使用的工具,尤其是在数据科学领域。它还通过spylon-kernel
支持Scala开发。
注意:对于那些刚接触Jupyter Notebook的人,请随时查看这个综合教程。
在Jupyter Notebook中设置Scala环境并不是火箭科学。所以,让我们快速地用几个步骤来设置它。
-
首先,你将安装
spylon-kernel
。pip install spylon-kernel
(Python 2)pip3 install spylon-kernel
(Python 3) -
接下来,你将创建一个内核规范,这将允许你在 jupyter notebook 中选择
scala-kernel
。python -m spylon_kernel install
(Python 2)python3 -m spylon_kernel install
(Python 3) -
然后,作为一个重要的步骤,你将安装
pyspark
和findspark
,因为spylon-kernel
也会安装一些spark
组件。pip install pyspark findspark
(Python 2)pip3 install pyspark findspark
(Python 3) -
最后,启动您的Jupyter Notebook,并选择内核为`spylon-kernel`,您就可以开始工作了!
- 让我们运行一段小代码来测试Scala内核是否配置正确。
val x = 2 val y = 3 x*y
x: Int = 2 y: Int = 3 res1: Int = 6
太好了!正如您从上面的输出中可以观察到的,您成功地在Jupyter Notebook中配置了Scala环境。
基本语法
让我们先在Scala中打印`Hello, World!`。
print("Hello, World!")
Hello, World!
正如您所见,这非常简单,只是一个`print`命令后跟输入作为参数。
现在,让我们来看一下Scala中与语法相关的一些细节:
-
Scala是区分大小写的,这意味着在Scala中标识符
DataCamp
和dataCamp
有不同的含义。 -
在Scala中,所有的类名第一个字母应该是大写。如果类名由多个单词组合而成,每个单词的首字母都应该是大写。例如,
class MyScalaDataCampTutorial
。 -
Scala中的方法名与
类名
有所不同,主要是为了区分方法名
和类名
。方法名应以小写字母开头(源)。如果多个单词组合成方法名,那么每个内部单词的首字母应为大写。例如,def firstDatacampScalaTutorial()
-
在Scala中,程序文件的名称必须与对象名称完全匹配。保存文件时,需要使用对象名称,并在名称末尾添加
.scala
。例如,假设对象名称为ScalaTutorial
,则文件应保存为ScalaTutorial.scala
。注意:如果文件名和对象名称不匹配,那么您的程序甚至无法编译。
-
最后,像大多数编程语言的函数一样,Scala程序的处理也从
main()
方法开始,这是每个Scala程序的重要部分。
下图显示了Scala中的保留字,这些字不能用作常数、变量或任何其他标识符。

数据类型
Scala中的数据类型与许多其他编程语言如C、C++、Java、Python等几乎相同,具有类似的内存占用和精度。
最后,让我们来看一下Scala中存在的一些数据类型:
-
Int: 一个32位有符号(可以取正值和负值)值,范围从 $2^{-31}$ 到 $2^{31} – 1$
-
Byte: 一个8位有符号值,范围从 $2^{-7}$ 到 $2^{7} – 1$
-
Short: 一个16位有符号值,范围从 $2^{-15}$ 到 $2^{15} – 1$
-
Long: 一个64位有符号值,范围从 $2^{-63}$ 到 $2^{63} – 1$
-
Float: 包括32位(单精度浮点数)和64位(双精度浮点数)
-
Char: 一个16位无符号(只能取正值)Unicode字符。
其他一些数据类型包括字符串,布尔值,空值。
结论
恭喜你完成这个教程。
这对于有兴趣学习Scala的初学者来说是一个很好的起点。
想要了解更多,请查看DataCamp的Scala教程:
还有很多关于Scala的信息未被揭开,比如if/else,for循环,Scala中的各种运算符等,这些将在未来的教程中介绍,敬请关注!
参考资料:
请在下面的评论部分随意提问与本教程相关的问题。
Source:
https://www.datacamp.com/tutorial/beginners-guide-to-scala