Scala學習筆記(2)-基礎語法
秉著簡潔而不失完整的的原則,這章只把Scala主要語法和與Java不同的內容列出來,以後章節也如此,內容以簡潔為主,太長了自己都被嚇著了,也沒耐心看下去。
1.Scala直譯器使用,這裡不做介紹,有IDE這玩意一般用不著。
2.基本資料型別
Java原始型別在scala包裡都有對應的類。例如,scala.Boolean對應著Java的boolean。scala.Float對應著Java的float。當你把你的Scala程式碼編譯成Java位元組碼,Scala編譯器將使用Java的原始型別以便獲得其帶來的效能益處。
3.定義變數
Scala有兩種變數,val和var。val類似於Java裡的final變數。一旦初始化了,val就不能再賦值了。與之對應的,var如同Java裡面的非final變數。var可以在它生命週期中被多次賦值。
val msg1=”hello scala”
var msg2=”hello world”
仔細看上面定義的2個變數好像都沒有型別宣告,這是怎麼回事呢?這就要說到Scala的型別推斷(type inference),因為你用了一個字串來初始化msg變數,Scala推斷msg的型別是String。你也可以顯式地定義型別,有些時候也應該這麼做。顯式的型別標註不但可以確保Scala編譯器推斷你傾向的型別,還有助於以後程式碼的閱讀。
val msg : String=”hello scala” 與Java不同的是型別宣告在變數後面,用一個”:”分隔。
4.定義函式
上面已經定義了變數,現在開始學習怎麼定義一個函式
def max(x: Int, y: Int): Int = { //定義函式
if (x > y) x
else y
}
max(3,7) //呼叫函式
自己對照看與 java函式有什麼不同,函式體只有一句的大括號可以省略寫成 :
def max(x: Int, y: Int) = if (x > y) x else y
結果型別也去掉了,編譯器型別推斷可得出,儘管如此帶上結果型別也是一個好習慣,便於其他人閱讀程式碼。
Scala的Unit結果型別指的是函式沒有返回有用的值。Scala的Unit型別比較接近Java的void型別,而且實際上Java裡每一個返回void的方法都被對映為Scala裡返回Unit的方法。因此結果型別為Unit的方法,僅僅是為了它們的副作用而執行
注:java裡的i++和++i在scala裡是行不通的。
本文來自雲棲社群合作伙伴“開源中國”
本文作者:山海經
相關文章
- Go 學習筆記 - Go 基礎語法(2)Go筆記
- Python 3 學習筆記之——基礎語法Python筆記
- Go學習筆記 - Go 基礎語法(1)Go筆記
- Scala基礎語法
- scala基礎語法-----Spark基礎Spark
- Scala 的基礎語法
- swift學習筆記《2》-swift語法Swift筆記
- go 學習記錄--基礎語法Go
- Scala基礎學習
- Java基礎 語法筆記Java筆記
- Java基礎語法筆記Java筆記
- Scala基本語法學習
- Scala學習筆記筆記
- 菜鳥學習筆記:Java基礎篇1(基礎語法、物件導向)筆記Java物件
- 真香,理解記憶法學習Python基礎語法Python
- c語言程式基礎學習筆記C語言筆記
- markdown學習(基礎語法)
- 學習Rust 基礎語法Rust
- ABAP學習筆記-基礎語法-05-字串的處理(02)筆記字串
- 《Fluid Engine Development》 學習筆記2-基礎UIdev筆記
- Java學習之基礎語法Java
- Python學習筆記(語法篇)Python筆記
- CSS 基礎學習筆記CSS筆記
- node基礎學習筆記筆記
- Python基礎學習筆記Python筆記
- Java基礎學習筆記Java筆記
- Web基礎學習筆記Web筆記
- Redis基礎知識(學習筆記21--Lua 指令碼語言2)Redis筆記指令碼
- canvas學習筆記-2d畫布基礎Canvas筆記
- Linux基礎學習-Docker學習筆記LinuxDocker筆記
- Java學習之基礎語法練習Java
- 學習python的基礎語法集合Python
- 《PHP學習筆記——PHP基本語法》PHP筆記
- 2020-09-29【學習筆記】scala語言(三十三) scala中的抽象方法筆記抽象
- python基礎學習筆記(一)Python筆記
- 基礎 IO (Linux學習筆記)Linux筆記
- MySQL學習筆記【基礎篇】MySql筆記
- 基礎知識學習筆記筆記