Spark记录-Scala基础语法
如果您熟悉Java語言語法和編程,那么學習Scala將會很容易。Scala和Java之間最大的句法差異在于行結束字符的分號(;) 是可選的。
當編寫Scala程序時,它可以被定義為通過調用彼此的方法進行通信的對象的集合。現在我們簡單地看一下類,對象,方法和實例變量的含義。
- 對象?- 對象有狀態和行為。一個對象是類的一個實例。例如 - 狗有狀態:顏色,名稱,品種,它行為有:搖擺,吠叫和吃東西。
- 類?- 可以將類定義為描述與該類相關的行為/狀態的模板/藍圖。
- 方法?- 一個方法基本上是一種行為。一個類可以包含很多方法。將邏輯代碼寫入的方法中,數據在方法中操縱并且執行所有的動作。
- 字段?- 每個對象都有其唯一的一組實例變量,稱為字段。對象的狀態是由分配給這些字段的值來創建的。
- 閉包?- 閉包是一個函數,其返回值取決于在此函數之外聲明的一個或多個變量的值。
- 特征?- 特征(Traits)封裝了方法和字段定義,然后可以通過將它們混合到類中來重用它們,特征(Traits)用于通過指定支持的方法的簽名來定義對象類型。
我們可以通過兩種模式執行Scala程序:
- 交互模式---命令行模式
- 腳本模式---編程模式
基礎語法
以下是Scala編程中的基本語法和編碼約定。
- 區分大小寫?- Scala是區分大小寫的,比如標識符Hello和hello在Scala中表示不同的含義(對象)。
-
類名稱?- 對于所有類名,第一個字母應為大寫。如果使用多個單詞來形成類的名稱,則每個內部單詞的第一個字母應該是大寫。
示例 -?class MyFirstScalaClass,class Employee*類等。 -
方法名稱?- 所有方法名稱應以小寫字母開頭。如果使用多個單詞形成方法的名稱,則每個內部單詞的第一個字母應為大寫。
示例 -?def myMethodName(),def getName()等。 -
程序文件名?- 程序文件的名稱應與對象名稱完全匹配。保存文件時,您應該使用對象名稱保存它(記住Scala是區分大小寫的),并將.scala附加到文件名稱的末尾。 (如果文件名和對象名不匹配,則程序將不會編譯)。
示例?- 假設HelloWorld是對象名稱。 那么文件應該保存為HelloWorld.scala。 -
def main(args:Array [String])?- Scala程序從main()方法開始,這是每個Scala程序的強制性部分。
Scala標識符
所有Scala組件都需要名稱。用于對象,類,變量和方法的名稱稱為標識符。關鍵字不能用作標識符,標識符區分大小寫。Scala支持四種類型的標識符。
字母數字標識符
字母數字標識符以字母或下劃線開頭,后面可以有更多的字母,數字或下劃線。?$字符是Scala中的保留關鍵字,不應在標識符中使用。
以下是合法的字母數字標識符 -
age, salary, _value, __1_value Scala以下是非法標識符 -
$salary, 123abc, -salary Scala運算符標識符
運算符標識符由一個或多個運算符字符組成。運算符字符是可打印的ASCII字符,如:+,:,?,~或#。
以下是合法運算符標識符 -
+ ++ ::: <?> :> ScalaScala編譯器將在內部將操作符標識符轉換成具有嵌入式$字符的合法Java標識符。例如,標識符:->將被內部表示為$colon$minus$greater。
混合標識符
混合標識符由字母數字標識符組成,后面跟著一個下劃線和一個操作符標識符。
以下是合法的混合標識符 -
unary_+, myvar_= Scala這里,一元_+用作方法名稱定義一個一元的+運算符,而myvar_=用作方法名定義一個賦值運算符(運算符重載)。
字面識別符
一個文字標識符是一個隨意的字符串,包含在后面的勾號(...)中。
以下是合法的文字標識符 -
`x` `<clinit>` `yield`Scala關鍵字
以下列表顯示Scala中的保留字(關鍵字),這些保留字不能用作常量或變量或任何其他標識符名稱。
| def | do | else | extends |
| false | final | finally | for |
| forSome | if | implicit | import |
| lazy | match | new | Null |
| object | override | package | private |
| protected | return | sealed | super |
| this | throw | trait | Try |
| true | type | val | Var |
| while | with | yield | ? |
| - | : | = | => |
| <- | <: | <% | >: |
| # | @ | ? |
Scala注釋
Scala支持與Java類似的單行和多行注釋。多行注釋可以嵌套,但需要正確嵌套。注釋中任何字符都被Scala編譯器忽略。
空行和空格
只包含空格的行(可能帶有注釋)稱為空行,Scala完全忽略它。標記可以由空格字符和/或注釋分隔。
換行字符
Scala是一種面向行的語言,其語句可能以分號(;)或換行符終止。語句結尾處的分號(;)通常是可選的。如果需要,您可以輸入一個分號(;),但如果語句在單行上自行顯示,則不需要輸入。 另一方面,如果在單行上寫多個語句,則需要分號。 下面的語法是多個語句的用法。
val s = "hello"; println(s) ScalaScala包
一個包是一個命名的代碼模塊。 例如,Lift實用程序包是net.liftweb.util。包聲明是源文件中的第一個非注釋行,如下所示:
package com.liftcode.stuff Scala導入Scala軟件包,以便在當前的編譯范圍內引用它們。 以下語句導入scala.xml包的內容 -
import scala.xml._ Scala也可以從scala.collection.mutable包導入單個類和對象,例如:HashMap,
import scala.collection.mutable.HashMap Scala可以從單個包導入多個類或對象,例如,來自scala.collection.immutable包的TreeMap和TreeSet?-
import scala.collection.immutable.{TreeMap, TreeSet}轉載于:https://www.cnblogs.com/xinfang520/p/7727260.html
總結
以上是生活随笔為你收集整理的Spark记录-Scala基础语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kan
- 下一篇: [51nod1678]lyk与gcd问题