本文概述
介绍
Scala是由Martin Odersky设计的, Martin Odersky是瑞士洛桑联邦理工学院(EPFL)的教授, 也是一位德国计算机科学家。 Martin从2001年开始致力于创建Scala, 并于2004年首次发布。
Scala代表可扩展语言。它是一种通用的, 面向对象的语言, 与Java编程语言有一些共同点。它为功能编程提供支持。 Scala的许多设计决策旨在解决Java编程语言的缺点。
Scala提供的一些功能是:
- Scala的源代码可以编译为Java字节码, 因此可以在Java虚拟机(JVM)上执行。
- 它提供了与Java的语言互操作性, 因此可以在Scala或Java代码库中引用以任何一种语言编写的库。
- 与Java一样, Scala也使用花括号语法。
- 它具有功能性编程语言的许多功能, 如Scheme, Standard Machine Learning和Haskell, 包括currying, 类型推断, 不变性, 惰性评估和模式匹配。
- 使用JavaScript支持Web应用程序。
- 与Java不同, Scala还支持运算符重载, 可选参数, 命名参数和原始字符串。
关于Scala的一个有趣的事实是, 由于它的可伸缩性和在后端操作中使用的能力, 它已被Apple, Twitter, 沃尔玛和Google等公司广泛使用。
在Jupyter Notebook中设置Scala
Jupyter笔记本是计算机科学中使用最广泛的工具, 尤其是在数据科学领域。在spylon-kernel的帮助下, 它也支持Scala开发。
注意:对于jupyter笔记本电脑的新手来说, 请随时阅读此综合教程。
在jupyter笔记本中设置Scala环境不是火箭科学。因此, 我们仅需几个步骤就可以对其进行快速设置。
-
首先, 你将安装spylon内核。
pip install spylon-kernel(Python 2)
pip3 install spylon-kernel(Python 3) -
接下来, 你将创建一个内核规范, 该规范将允许你在jupyter Notebook中选择scala内核。
python -m spylon_kernel安装(Python 2)
python3 -m spylon_kernel安装(Python 3) -
然后, 作为重要的一步, 你将安装pyspark和findspark, 因为spylon内核还安装了一些spark组件。
pip install pyspark findspark(Python 2)
pip3 install pyspark findspark(Python 3) - 最后, 启动你的jupyter笔记本, 然后选择kernel作为spylon-kernel, 你一切顺利!
- 让我们运行一小段代码来测试Scala内核是否已正确配置。
val x = 2
val y = 3
x*y
x: Int = 2
y: Int = 3
res1: Int = 6
大!因此, 从上述输出中可以看到, 你已成功在jupyter Notebook中配置Scala环境。
基本语法
让我们开始打印Hello, World!在斯卡拉。
print("Hello, World!")
Hello, World!
如你所见, 它是如此简单, 只需执行一条打印命令, 然后将输入作为参数即可。
现在, 让我们看一下Scala中与语法相关的一些细节:
- Scala区分大小写, 这意味着标识符srcmini和srcmini在Scala中将具有不同的含义。
- 在Scala中, 所有类名的首字母均应为大写。如果将许多单词组合在一起构成类的名称, 则每个单独单词的首字母应大写。例如, 类MyScalasrcminiTutorial。
- 与类名称相比, Scala中的方法名称的工作方式略有不同, 主要是为了将方法名称与类名称区分开。方法名称应以小写字母开头(源)。如果将多个单词组合在一起形成方法的名称, 则每个内部单词的首字母应大写。例如, def firstsrcminiScalaTutorial()
-
在Scala中, 程序文件的名称应与对象名称完全匹配。保存文件时, 需要使用对象名称保存文件, 并将.scala附加到名称末尾。例如, 假设ScalaTutorial是对象名称。然后, 该文件应另存为ScalaTutorial.scala。
注意:如果文件名和对象名不匹配, 则你的程序将甚至无法编译。
- 最后, 像大多数编程语言功能一样, Scala程序的处理也从main()方法开始, 这是每个Scala程序的关键部分。
下图显示了Scala中的保留字, 这些保留字不能用作常量或变量或任何其他标识符。
(资源)
资料类型
Scala中的数据类型几乎与许多其他编程语言(如C, C ++, Java, Python等)相同, 并且具有相似的内存占用量和精度。
最后, 让我们看一下Scala中存在的一些数据类型:
- Int:32位有符号(可以同时取正值和负值)的值的范围是$ 2 ^ {-31} $到$ 2 ^ {31}-1 $
- 字节:8位带符号值的范围是$ 2 ^ {-7} $到$ 2 ^ {7}-1 $
- 短:16位带符号值的范围是$ 2 ^ {-15} $到$ 2 ^ {15}-1 $
- Long:64位带符号值的范围是$ 2 ^ {-63} $到$ 2 ^ {63}-1 $
- 浮点数:32位(单精度浮点数)和64位(双精度浮点数)
- 字符:16位无符号(只能采用正值)Unicode字符。
其他一些数据类型是String, Boolean, Null。
总结
祝贺你完成本教程。
对于对学习Scala感兴趣的初学者来说, 这是一个很好的起点。
有大量与Scala相关的信息仍然无法理解, 例如if / else, for循环, Scala中的各种运算符等, 这些将在以后的教程中进行介绍, 敬请期待!
参考文献:
- Scala(编程语言)
- Scala教程
请随时在下面的评论部分中提出与本教程相关的任何问题。