Scala 初學者指南

介紹

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)

  • 然後,作為一個重要的步驟,您將安裝 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是區分大小寫的,這意味著識別符DataCampdataCamp在Scala中會有不同的含義。

  • 在Scala中,所有的類名首字母應該是大寫。如果多個單詞組合起來形成類名,每個單詞的首字母都應該大寫。例如:class MyScalaDataCampTutorial

  • Scala中的方法名稱類別名稱略有不同,主要是為了區分方法名稱類別名稱。方法名稱應該以小寫字母開頭(Source)。如果多個單詞組合形成方法的名稱,則每個內部單詞的第一個字母應該大寫。例如,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 相關的大量知識還未解鎖,例如 Scala 中的 if/else,for 循環,各種運算符等,這些将在未來的教程中介紹,請密切关注!

參考資料:

請在下面的评论区自由提問,問題必須與本教程相關。

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