Scala入门指南

简介

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)

  • 然后,作为一个重要的步骤,你将安装pysparkfindspark,因为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中标识符DataCampdataCamp有不同的含义。

  • 在Scala中,所有的类名第一个字母应该是大写。如果类名由多个单词组合而成,每个单词的首字母都应该是大写。例如,class MyScalaDataCampTutorial

  • Scala中的方法名类名有所不同,主要是为了区分方法名类名。方法名应以小写字母开头()。如果多个单词组合成方法名,那么每个内部单词的首字母应为大写。例如,def firstDatacampScalaTutorial()

  • 在Scala中,程序文件的名称必须与对象名称完全匹配。保存文件时,需要使用对象名称,并在名称末尾添加.scala。例如,假设对象名称为ScalaTutorial,则文件应保存为ScalaTutorial.scala

    注意:如果文件名和对象名称不匹配,那么您的程序甚至无法编译。

  • 最后,像大多数编程语言的函数一样,Scala程序的处理也从main()方法开始,这是每个Scala程序的重要部分。

下图显示了Scala中的保留字,这些字不能用作常数、变量或任何其他标识符。

(Source)

数据类型

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中函数和方法的基础

Scala中的IF ELSE

Scala中的运算符

Scala中的列表

还有很多关于Scala的信息未被揭开,比如if/else,for循环,Scala中的各种运算符等,这些将在未来的教程中介绍,敬请关注!

参考资料:

请在下面的评论部分随意提问与本教程相关的问题。

Source:
https://www.datacamp.com/tutorial/beginners-guide-to-scala