Spark大數(shù)據(jù)分析 課件 3.3 Scala基礎(chǔ)語(yǔ)法_第1頁(yè)
Spark大數(shù)據(jù)分析 課件 3.3 Scala基礎(chǔ)語(yǔ)法_第2頁(yè)
Spark大數(shù)據(jù)分析 課件 3.3 Scala基礎(chǔ)語(yǔ)法_第3頁(yè)
Spark大數(shù)據(jù)分析 課件 3.3 Scala基礎(chǔ)語(yǔ)法_第4頁(yè)
Spark大數(shù)據(jù)分析 課件 3.3 Scala基礎(chǔ)語(yǔ)法_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Scala基礎(chǔ)語(yǔ)法目錄/Contents01

Scala數(shù)據(jù)類型02Scala變量03方法與函數(shù)Scala數(shù)據(jù)類型01Scala數(shù)據(jù)類型Scala中沒有基本數(shù)據(jù)類型的概念,所有的類型都是對(duì)象。Scala的數(shù)據(jù)類型和Java是類似的,所有Java的基本類型在scala包中都有對(duì)應(yīng)的類,將Scala代碼編譯為Java字節(jié)碼時(shí),Scala編譯器將盡可能使用Java的基本類型,從而提供基本類型的性能優(yōu)勢(shì)。Scala數(shù)據(jù)類型

AnyVal:所有值類型的父類型。包含Byte、Short、Int、Long、Float、Double、Char、Boolean、Unit。其中Unit類型用來標(biāo)識(shí)過程,也就是沒有明確返回值的函數(shù)。由此可見,Unit類似于Java里的void。Unit只有一個(gè)實(shí)例,(),這個(gè)實(shí)例也沒有實(shí)質(zhì)的意義。

AnyRef:Scala里所有引用類(referenceclass)的基類。與其他語(yǔ)言稍微有點(diǎn)不同的是,Scala還定義了底類型,分別是Nothing、Null。

Nothing:在Scala的類層級(jí)的最低端;它是任何其他類型的子類型,可以賦值給任何其他類型,用于異常,表明不正常的返回。

Null:所有引用類型的子類型,而Nothing是所有類型的子類型。Null類只有一個(gè)實(shí)例對(duì)象,null,類似于Java中的null引用。null可以賦值給任意引用類型,但是不能賦值給值類型。Scala變量02Scala變量Scala有兩種變量,val和var。val類似于Java里的final變量。一旦初始化了,val就不能再被賦值。相反,var如同Java里面的非final變量,可以在它的生命周期中被多次賦值。即,常量或變量。變量:在程序運(yùn)行過程中其值可能發(fā)生改變的量叫做變量。如:時(shí)間,年齡。常量:在程序運(yùn)行過程中其值不會(huì)發(fā)生變化的量叫做常量。如:數(shù)值3,字符'A'。Scala變量在Scala中,聲明變量使用關(guān)鍵詞“var”,實(shí)例如下:varmyVar:String="Foo"varmyVar:String="Too"在這里,myVar使用關(guān)鍵字var聲明。這意味著它是一個(gè)可以改變值的變量,被稱為可變變量。下面是使用val關(guān)鍵字來定義變量的語(yǔ)法:valmyVal:String="Foo"這里,myVal是使用關(guān)鍵字val聲明。這意味著,它是不能改變的變量,這是不可變變量。1.變量聲明Scala變量2.變量類型引用在Scala中聲明變量和常量不一定要指明數(shù)據(jù)類型,在沒有指明數(shù)據(jù)類型的情況下,其數(shù)據(jù)類型是通過變量或常量的初始值推斷出來的。所以,如果在沒有指明數(shù)據(jù)類型的情況下聲明變量或常量必須要給出其初始值,否則將會(huì)報(bào)錯(cuò)。如下面的實(shí)例所示,myVar會(huì)被推斷為Int類型,myVal會(huì)被推斷為String類型。varmyVar=10valmyVal="Hello,Scala!"

方法與函數(shù)03Scala有方法與函數(shù),二者在語(yǔ)義上的區(qū)別很小。Scala中的方法跟Java的類似,方法是組成類的一部分,而函數(shù)是一個(gè)對(duì)象可以賦值給一個(gè)變量。換句話來說在類中定義的函數(shù)即是方法。Scala中使用val語(yǔ)句可以定義函數(shù),def語(yǔ)句定義方法。方法與函數(shù)方法與函數(shù)1.方法Scala方法聲明格式如下:deffunctionName([參數(shù)列表]):[returntype]如果你不寫等于號(hào)和方法主體,那么方法會(huì)被隱式聲明為抽象(abstract),包含它的類型于是也是一個(gè)抽象類型。Scala方法定義格式如下:deffunctionName([參數(shù)列表]):[returntype]={functionbodyreturn[expr]}方法定義由一個(gè)def關(guān)鍵字開始,緊接著是可選的參數(shù)列表,一個(gè)冒號(hào):和方法的返回類型,一個(gè)等于號(hào)=,最后是方法的主體。以上代碼中returntype可以是任意合法的Scala數(shù)據(jù)類型。參數(shù)列表中的參數(shù)可以使用逗號(hào)分隔。如果方法沒有返回值,可以返回為Unit,這個(gè)類似于Java的void。2.函數(shù)在Scala中,由于使用def語(yǔ)句定義以及調(diào)用函數(shù)的格式均與方法一樣,因此,這里不做贅述。然而,Scala函數(shù)與Scala方法也是有區(qū)別的。具體如下:(1) 函數(shù)可作為一個(gè)參數(shù)傳入到方法中,而方法不行。(2) 在Scala中無法直接操作方法,如果要操作方法,必須先將其轉(zhuǎn)換成函數(shù)。(3) 函數(shù)必須要有參數(shù)列表,而方法可以沒有參數(shù)列表valfunctionName([參數(shù)列表]):[returntype]={functionbodyreturn[expr]}方法與函數(shù)方法與

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論