手把手Scala 第一集 Scala 基礎(chǔ)語法01

Scala是一個(gè)面向?qū)ο蟮暮瘮?shù)式的編程語言,它獨(dú)特的編程范式令人映像深刻


1.安裝Scala

注意:

Scala與Java的關(guān)系是尤其緊密的,因?yàn)镾cala是基于Java虛擬機(jī),也就是JVM的一門編程語言。所有的Scala代碼

都會(huì)編譯為字節(jié)碼,然后交由JVM來運(yùn)行,這也是為什么Scala能無縫調(diào)用Java代碼,如果你說:我不懂Java呀.....

那還不趕快去學(xué)@?。。。。。。?/div>

總之:安裝scala之前必須保證JDK安裝完成

1)從scala官方網(wǎng)站下載Scala安裝包?

https://www.scala-lang.org/download/

2)安裝Scala并在PATH環(huán)境變量中配置$SCALA_HOME/bin目錄

3)在cmd命令行中直接鍵入scala,打開scala命令行

Scala解釋器

2.聲明變量

? ? 開始之前先帶大家認(rèn)識(shí)兩個(gè)Scala中的朋友:val與var

? ? · 聲明val變量: 可以聲明val變量來存放表達(dá)式的計(jì)算結(jié)果

? ? ? ? 例如: val res = 1+2+3

? ? ? ? 之后這個(gè)變量依然是可以使用的 例如 2 * res

? ? ? ? 但是由val聲明的變量是無法改變值的 ,例如 res = 12 會(huì)返回error錯(cuò)誤信息? ??

? ? · 聲明var變量: 可以聲明var變量,var聲明的變量值可以改變

? ??? ? ? ? 例如 var res =1,res =2

? ? ?既然一個(gè)可以改變另一個(gè)不能改變,那我們都用var就好了?

問得好!??!

然而事實(shí)是:在Scala程序中,我們通常推薦使用val,也就是不可改變值的寫法(常量)。這樣不但編譯時(shí)能方便的優(yōu)化字節(jié)碼文件,而且在類似與spark這樣的大型復(fù)雜系統(tǒng)中,不用擔(dān)心大量的網(wǎng)絡(luò)傳輸數(shù)據(jù)被錯(cuò)誤的更改。這個(gè)做法在Java的大型復(fù)雜系統(tǒng)的設(shè)計(jì)和開發(fā)中也很常見。我們通常會(huì)將傳遞給其他組件/服務(wù)的對(duì)象,設(shè)計(jì)成不可變類(Immutable Class)。


?·?指定類型:

無論是var還是val我們都可以手動(dòng)得指定類型。既然說“可以手動(dòng)”,那當(dāng)然也可以不指定類型由Scala自動(dòng)根據(jù)值,進(jìn)行類型推斷(數(shù)據(jù)類型在下面會(huì)看到)

? ? ? ? ? ?例如:val name:String = null

? ? ? ? ? ? ? ? ?var name:Any = "dongFangBuBai"

那什么時(shí)候需要手動(dòng)指定,什么時(shí)候不需要呢?

如果你開心的話呢,盡管交給Scala自動(dòng)推斷吧,只是可能接手代碼的哥們兒就很難受了。


到時(shí)候闖了禍可別把我供出來


?· 聲明多個(gè)變量:

可以將多個(gè)變量放在一起聲明

例如:val name,age:String = null

3.數(shù)據(jù)類型與操作符

基本數(shù)據(jù)類型:Byte、Char、Short、Int、Long、Float、Double、Boolean。

貌似見過這東西啊

猛的一看:這不是Java包裝類嗎?然鵝Scala并沒有基本數(shù)據(jù)類型和包裝類型的概念。統(tǒng)一的叫做類。作為一門成熟的編程語言,Scala已經(jīng)學(xué)會(huì)了自己負(fù)責(zé)基本數(shù)據(jù)類型和應(yīng)用類型的轉(zhuǎn)換操作了。

以上的數(shù)據(jù)類型可以,直接就可以調(diào)用大量的函數(shù)了。例如 12.toString()

類的加強(qiáng)版類型

悟空,你讓開,為師自己來

體會(huì)一下,大概就是圖上那個(gè)樣子

Scala使用了很多的加強(qiáng)類給數(shù)據(jù)類型增加了上百種增強(qiáng)功能或函數(shù),而且通過隱式轉(zhuǎn)換能直接調(diào)用

例如:RichInt的to函數(shù),可以直接使用1.to(100),此處的Int先隱式轉(zhuǎn)換為了RichInt,然后再調(diào)用to函數(shù)

基本操作符

Scala的算數(shù)操作符與Java并沒有什么區(qū)別,比如:+、=、-、*、%、<<、>>、|

但本質(zhì)上是不同的,再Scala中,這些操作符都是函數(shù) ,例如 1 + 1 你以為是1 + 1,但他是 1 + (1)

對(duì),這個(gè)“+”就是一個(gè)函數(shù)表達(dá)式,再比如剛剛看到過的12.to(100)其實(shí)也可以寫作12 to 100


你以為這是電話,其實(shí)他是剃須刀

Scala中并沒有++,--操作符,我們只能使用+= 或者 -=



? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?學(xué)有所成,學(xué)無止境 ----------------------我是易工匠,一個(gè)不正經(jīng)的軟件從業(yè)者。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容