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