整理一下 Scala 的語法,你會發現它其實並不算困難,甚至 Martin 想要盡量簡化。
Scala 主要的語法包含以下各項
1. class 宣告:包含 class / object、data field、method 宣告。
2. instantiation:create instance。
3. Local 變數 / 常數的宣告。
4. assignment:指變數的 reassignment。
5. 控制結構:if、while、for、try、match。
6. method / function call:用來呼叫 object 的 method。
雖然還有一些次要的,但主要的就是這些,算簡單了吧!
值得一提的是,method call 會運用「小括號省略原則」,該原則未來會詳述,這裡大約提一下。method call 原來的格式是「object.method(param1, param2)」,但若參數是零個或一個,可以省略 dot 與小括號,這就是「小括號省略原則」。
重點是,Scala 中並沒有像其他語言有的「關係運算式」,以及「加減乘除」等運算式的 statements。
這裡不是說,Scala 不能做這些運算,而是 Scala 很巧妙的,將這些運算整合到 method call。
舉例而言:
1 + 2 的句子其實是 1.+(2) 的 method call
1 < 2 的句子其實是 1.$less(2) 的 method call
所以 Scala 並不需要有這些運算式的語法,全賴 method call 就可以。compiler 只需運用 method call 的技巧,不需特別為「關係運算式」與「加減乘除」等運算式設計 parser 與 compile。
所以說,Scala 的語法根本沒有這些運算式,這是大家要記住的。很巧妙吧!
這個概念我們未來會仔細討論,在這裡提到只是要告訴大家,Scala 的基本語法並不難,甚至算簡單,只要你把 Scala 的原理搞清楚,也許你反而會覺得 Scala 簡單。
雖然我們說 1 + 2 其實是 1.+(2),但由於 Int 對應到 Java 的 int type,所以 Scala 中,Int 的 + 這個 method 會有特別的 implement 方式,compiler 編譯時會直接將該 method 轉換成 Java 的 int 的運算式,所以大家不用擔心效能的問題。我們可以稱這種 method 是使用 「primitive operation」
來 implement。
結束了控制結構,下個章節我們將回頭繼續討論 class。
沒有留言:
張貼留言