跳至主要内容

Scala 初学者指南

学习 Scala 的基础知识,包括语法、如何设置环境,以及各种常见数据类型。
· 6分钟 阅读

使用 AI 探索

简介

scala 标志

Scala 由瑞士洛桑联邦理工学院(EPFL)的教授、德国计算机科学家 Martin Odersky 设计。Martin 于 2001 年开始研发 Scala,并于 2004 年首次发布。

Scala 是 Scalable Language(可扩展语言)的缩写。它是一种通用的、面向对象的语言,与 Java 编程语言有若干共性,同时也支持函数式编程。Scala 的许多设计决策都旨在弥补 Java 编程语言的不足。

Scala 提供的一些特性包括:

  • Scala 源代码可以编译为 Java 字节码,因此可在 Java 虚拟机(JVM)上运行。

  • 它与 Java 具有语言互操作性,因此无论是用哪种语言编写的库,都可以在 Scala 或 Java 代码库中引用。

  • 与 Java 一样,Scala 也使用大括号语法。

  • 它具备许多函数式编程语言(如 Scheme、Standard ML 和 Haskell)的特性,包括柯里化、类型推断、不可变性、惰性求值和模式匹配。

  • 通过 JavaScript 支持 Web 应用程序。

  • 与 Java 不同,Scala 还支持运算符重载、可选参数、命名参数和原始字符串。

关于 Scala 的一个有趣事实是,由于其良好的可扩展性以及在后端操作中的适用性,它被 Apple、Twitter、Walmart 和 Google 等公司广泛使用。

在 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 作为内核,就可以开始了!

jupyter notebook 示例

  • 让我们运行一小段代码,测试是否已正确配置 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 区分大小写,这意味着标识符 DataCamp 和 dataCamp 在 Scala 中含义不同。

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

  • Scala 中的方法名与 类名略有不同,主要是为了与 类名区分。方法名应以小写字母开头(来源)。如果方法名由多个单词组成,则从第二个单词起每个单词的首字母应大写。例如,def firstDatacampScalaTutorial()

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

    注意:如果文件名与对象名不匹配,程序将无法编译。

  • 最后,与大多数编程语言类似,Scala 程序的执行也从 main() 方法开始,这是每个 Scala 程序中至关重要的一部分。

下图展示了 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 字符。

其他一些数据类型包括 String、Boolean、Null。

结语

恭喜您完成本教程。

这对于有兴趣学习 Scala 的初学者来说是一个很好的起点。

想要了解更多内容,请查看 DataCamp 的 Scala 教程:

Scala 中的函数与方法基础

Scala 中的 IF ELSE

Scala 中的运算符

Scala 中的列表

关于 Scala 还有大量内容尚未展开,例如 if/else、for 循环、各种运算符等,这些将会在后续教程中逐步介绍,敬请期待!

参考资料:

如对本教程有任何疑问,欢迎在下方评论区留言。

主题