Scala基礎語法
Scala基礎語法
Scala 與 Java 的最大區別是:Scala 語句末尾的分號 ; 是可選的。
1、類,物件,方法,例項變數的概念
物件 - 物件有屬性和行為。例如:一隻貓的屬性有:顏色,名字,行為有:叫、跑、吃等。物件是一個類的例項。
類 - 類是物件的抽象,而物件是類的具體例項。
方法 - 方法描述的基本的行為,一個類可以包含多個方法。
欄位 - 每個物件都有它唯一的例項變數集合,即欄位。物件的屬性通過給欄位賦值來建立。
2、基本語法
(1)區分大小寫
Scala是大小寫敏感的,這意味著標識Hello 和 hello 在Scala中會有不同的含義。
(2)類名
對於所有的類名的第一個字母要大寫。
如果需要使用幾個單詞來構成一個類的名稱,每個單詞的第一個字母要大寫。
示例:class FirstScala
(3)方法名稱
所有的方法名稱的第一個字母用小寫。
如果若干單詞被用於構成方法的名稱,則每個單詞的第一個字母應大寫。
示例:def myMethod()
(4)程式檔名
程式檔案的名稱應該與物件名稱完全匹配(新版本不需要了,但建議保留這種習慣)。
儲存檔案時,應該儲存它使用的物件名稱(記住Scala是區分大小寫),並追加".scala"為副檔名。 (如果檔名和物件名稱不匹配,程式將無法編譯)。
示例: 假設"Hello"是物件的名稱。那麼該檔案應儲存為’Hello.scala"
(5)def main(args: Array[String])
Scala程式從main()方法開始處理,這是每一個Scala程式的強制程式入口部分。
3、識別符號
Scala 可以使用兩種形式的標誌符,字元數字和符號。
字元數字使用字母或是下劃線開頭,後面可以接字母或是數字,符號" " 在 S c a l a 中 也 看 作 為 字 母 。 然 而 以 " "在 Scala 中也看作為字母。然而以" "在Scala中也看作為字母。然而以"“開頭的識別符號為保留的 Scala 編譯器產生的標誌符使用,應用程式應該避免使用”$"開始的識別符號,以免造成衝突。
Scala 的命名規則採用和 Java 類似的 camel 命名規則,首字元小寫,比如 toString。類名的首字元還是使用大寫。此外也應該避免使用以下劃線結尾的標誌符以避免衝突。
符號標誌符包含一個或多個符號,如+,:,? 等,比如:
- ++ ::: < ?> :->
Scala 內部實現時會使用轉義的標誌符,比如:-> 使用 c o l o n colon colonminus$greater 來表示這個符號。因此如果你需要在 Java 程式碼中訪問:->方法,你需要使用 Scala 的內部名稱 c o l o n colon colonminus$greater。
混合標誌符由字元數字標誌符後面跟著一個或多個符號組成,比如 unary_+ 為 Scala 對+方法的內部實現時的名稱。字面量標誌符為使用"定義的字串,比如 x
yield
。
你可以在"之間使用任何有效的 Scala 標誌符,Scala 將它們解釋為一個 Scala 標誌符,一個典型的使用為 Thread 的 yield 方法, 在 Scala 中你不能使用 Thread.yield()是因為 yield 為 Scala 中的關鍵字, 你必須使用 Thread.yield
()來使用這個方法。
4、Scala 關鍵字
我們不能使用以下關鍵字作為變數
scala 保留關鍵字如下:
5、Scala 註釋
Scala 類似 Java 支援單行和多行註釋。多行註釋可以巢狀,但必須正確巢狀,一個註釋開始符號對應一個結束符號。註釋在 Scala 編譯中會被忽略。
object FirstScala {
/*
* 多行註釋
* 列印相關資訊
*/
def main(args: Array[String]): Unit = {
// 這是一個單行註釋
println("FirstScala");
}
}
6、空行和空格
一行中只有空格或者帶有註釋,Scala 會認為其是空行,會忽略它。標記可以被空格或者註釋來分割。
7、換行符
Scala是面向行的語言,語句可以用分號(;)結束或換行符。Scala 程式裡,語句末尾的分號通常是可選的。如果你願意可以輸入一個,但若一行裡僅 有一個語句也可不寫。另一方面,如果一行裡寫多個語句那麼分號是需要的。
val x = "itwuyi"; println(s)
8、Scala 包
定義包
Scala 使用 package 關鍵字定義包,在Scala將程式碼定義到某個包中有兩種方式:
第一種方法和 Java 一樣,在檔案的頭定義包名,這種方法就後續所有程式碼都放在該包中。 比如:
package com.itwuyi
class Hello
第二種方法有些類似 C#,可以在一個檔案中定義多個包。
比如:
package com.itwuyi{
class Hello
}
引用
Scala 使用 import 關鍵字引用包。
import語句可以出現在任何地方,而不是隻能在檔案頂部。import的效果從開始延伸到語句塊的結束。這可以大幅減少名稱衝突的可能性。
import java.itwuyi.Hello // 引入Hello
import java.itwuyi._ // 引入包內所有成員
def hello(String: sayHello) {
// java.itwuyi.Hello.sayHello
// 因為引入了java.itwuyi,所以可以省去前面的部分
...
}
如果想要引入包中的幾個成員,可以使用selector(選取器):
import java.itwuyi.{Hello, Hi}
// 重新命名成員
import java.util.{HashMap => MyHashMap}
// 隱藏成員
import java.util.{HashMap => _, _} // 引入了util包的所有成員,但是HashMap被隱藏了
注意:預設情況下,Scala 總會引入 java.lang._ 、 scala._ 和 Predef._,這裡也能解釋,為什麼以scala開頭的包,在使用時都是省去scala.的。
相關文章
- scala基礎語法-----Spark基礎Spark
- Scala 的基礎語法
- Scala學習筆記(2)-基礎語法筆記
- Scala學習 1.1 Scala基礎與語法入門實戰
- Scala語法
- Java基礎-語法基礎Java
- 基礎語法
- Scala 語法(一)
- 英語語法基礎
- 【Scala篇】--Scala初始與基礎
- Dart語法基礎Dart
- Vue基礎語法Vue
- Java 基礎語法Java
- CSS 基礎語法CSS
- jQuery基礎語法jQuery
- redis 基礎語法Redis
- mysql基礎語法MySql
- jQuery 基礎語法jQuery
- Markdown 基礎語法
- JavaScript 基礎語法JavaScript
- JAVA語法基礎Java
- markdow基礎語法
- CSS基礎語法CSS
- go 基礎語法Go
- Markdown基礎語法
- 有趣的 Scala 語言: 簡潔的 Scala 語法
- JavaScript 基礎卷(一):基礎語法JavaScript
- Python基礎:語法基礎(3)Python
- 【Java基礎】--深入剖析基礎語法Java
- Dart語法篇之基礎語法(一)Dart
- Golang 基礎之基礎語法梳理 (三)Golang
- Drools之基礎語法
- kotlin基礎語法Kotlin
- C++基礎語法C++
- JAVA基礎語法(一)Java
- Dart的基礎語法Dart
- Python 基礎語法Python
- Java基礎語法1Java