介紹
Scala是由瑞士洛桑聯邦理工學院(EPFL)的教授、德國計算機科學家<Martin Odersky設計的。Martin於2001年開始創建Scala,並於2004年首次發布。
Scala代表著可擴展語言
。它是一種通用目的的、面向對象的語言,與Java編程語言有幾分相似之處。它提供了對函數式編程的支持。Scala的許多設計決策都是為了解決Java編程語言的缺點。
Scala提供的一些功能包括:
-
Scala的源代碼可以編譯成Java字节碼,因此可以在Java虛擬機(JVM)上執行。
-
它與Java具有語言互操作性,使得用任一語言編寫的庫可以在Scala或Java代碼庫中引用。
-
與Java一樣,Scala也使用花括號語法。
-
它具有許多函數式編程語言(如Scheme、Standard Machine Learning和Haskell)的功能,包括柯裏化、類型推斷、不可變性、懶評估和模式匹配。
-
支援使用 JavaScript 的網際網路應用。
-
與 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 筆記本中選擇
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是區分大小寫的,這意味著識別符
DataCamp
和dataCamp
在Scala中會有不同的含義。 -
在Scala中,所有的類名首字母應該是大寫。如果多個單詞組合起來形成類名,每個單詞的首字母都應該大寫。例如:
class MyScalaDataCampTutorial
。 -
Scala中的方法名稱與
類別名稱
略有不同,主要是為了區分方法名稱
與類別名稱
。方法名稱應該以小寫字母開頭(Source)。如果多個單詞組合形成方法的名稱,則每個內部單詞的第一個字母應該大寫。例如,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 相關的大量知識還未解鎖,例如 Scala 中的 if/else,for 循環,各種運算符等,這些将在未來的教程中介紹,請密切关注!
參考資料:
請在下面的评论区自由提問,問題必須與本教程相關。
Source:
https://www.datacamp.com/tutorial/beginners-guide-to-scala