Scala語法
這是一篇老的文章:scala syntax primer,從Java語法角度來看Scala語法,非常方便Java程式設計師轉變到Scala上。
基礎部分:
1. Scala的類名稱無需象Java那樣要與檔名一致,可以將任何Scala類放入任何Scala檔案中。
2. 分號是可選,不一定象Java那樣每行一個分號結束,如果需要將多個statements放在一行,需要用分號分離。
3.每個值都是物件,沒有Java的原始型別,既然都是物件,都可以呼叫其中方法,如123是個值數字,在Java中是int型別,但是Scala中可以123.toString()。
4.Scala有顯著的轉換Mixin,你可以呼叫原來類中不存在的方法。
5.Scala遵循統一訪問原則:"Uniform Access Principle" 意味著變數和無引數的函式都是以同樣方式訪問,只要用def替代val 或var即可(後者是變數的兩種型別。)
6. Scala能夠直接支援XML. 將scala.xml.Elem 分配給變數val x:
val x = <head><title>The Title</title></head>
也可以混合使用:
val title = "The Title"
val x = <head><title>{ title }</title></head>
Keywords關鍵詞修飾語法部分:
1.沒有Java的static關鍵詞. 在Scala中使用Object來替代static,Object是單態的。
2.Scala沒有break 或 continue. 透過函式程式設計風格來降低這種要求(banq注:也許Scala難點所在)。
3.Access modifiers such as protected and private can include a scope in square brackets, such as private[this] or protected[MyPackage1.MyPackage2]. The default access is public.
4. val 是用於不可變變數,相當於Java中增加了final,而var是可變變數
5.一個import可以匯入多個:
import java.text.{DateFormat,SimpleDateFormat}
6. 匯入符合可以改名:
import java.util.{Date=>UDate}
import java.sql.{Date=>SDate}
7. 如果匯入改名為_, 除了規定的符號,其他都什麼不匯入:
import java.util.{Date=>_,_}
8. abstract 只用於抽象class和 traits. 對於函式 val或var的抽象表達方式,你只需要忽略=後面的body部分即表示他們是抽象的
9.當需要覆蓋超級類中一個方法時,覆蓋的修改器必須指定,如果沒有指定,將不會覆蓋。
10.新的修飾語: lazy, implicit
基礎部分:
1. Scala的類名稱無需象Java那樣要與檔名一致,可以將任何Scala類放入任何Scala檔案中。
2. 分號是可選,不一定象Java那樣每行一個分號結束,如果需要將多個statements放在一行,需要用分號分離。
3.每個值都是物件,沒有Java的原始型別,既然都是物件,都可以呼叫其中方法,如123是個值數字,在Java中是int型別,但是Scala中可以123.toString()。
4.Scala有顯著的轉換Mixin,你可以呼叫原來類中不存在的方法。
5.Scala遵循統一訪問原則:"Uniform Access Principle" 意味著變數和無引數的函式都是以同樣方式訪問,只要用def替代val 或var即可(後者是變數的兩種型別。)
6. Scala能夠直接支援XML. 將scala.xml.Elem 分配給變數val x:
val x = <head><title>The Title</title></head>
也可以混合使用:
val title = "The Title"
val x = <head><title>{ title }</title></head>
Keywords關鍵詞修飾語法部分:
1.沒有Java的static關鍵詞. 在Scala中使用Object來替代static,Object是單態的。
2.Scala沒有break 或 continue. 透過函式程式設計風格來降低這種要求(banq注:也許Scala難點所在)。
3.Access modifiers such as protected and private can include a scope in square brackets, such as private[this] or protected[MyPackage1.MyPackage2]. The default access is public.
4. val 是用於不可變變數,相當於Java中增加了final,而var是可變變數
5.一個import可以匯入多個:
import java.text.{DateFormat,SimpleDateFormat}
6. 匯入符合可以改名:
import java.util.{Date=>UDate}
import java.sql.{Date=>SDate}
7. 如果匯入改名為_, 除了規定的符號,其他都什麼不匯入:
import java.util.{Date=>_,_}
8. abstract 只用於抽象class和 traits. 對於函式 val或var的抽象表達方式,你只需要忽略=後面的body部分即表示他們是抽象的
9.當需要覆蓋超級類中一個方法時,覆蓋的修改器必須指定,如果沒有指定,將不會覆蓋。
10.新的修飾語: lazy, implicit
[該貼被banq於2012-04-22 10:22修改過]
相關文章
- Scala 語法(一)
- 有趣的 Scala 語言: 簡潔的 Scala 語法
- Scala基礎語法
- Scala基本語法學習
- Scala 的基礎語法
- scala語法 -多維陣列陣列
- scala語法 - 方法與函式函式
- scala基礎語法-----Spark基礎Spark
- scala 在vim中的語法高亮
- Scala學習 1.1 Scala基礎與語法入門實戰
- Scala學習筆記(2)-基礎語法筆記
- 學習Scala IF…ELSE 語句
- scala 語言值得去學習嗎
- Scala確實是門好語言
- Scala,基於JVM的併發語言JVM
- 【Scala】Scala之ObjectObject
- 英語語法
- scala學習筆記:各種奇怪的寫法筆記
- 【Scala】Scala之TraitsAI
- JavaScript 新語法 「雙問號語法」與「可選鏈語法」JavaScript
- sql case語法和plsql case語法!SQL
- [一、基本語法]1基本語法概述
- [scala]函數語言程式設計思想入門函數程式設計
- Scala函式與函數語言程式設計函式函數程式設計
- Scala: 感覺像動態的靜態語言
- 語法與語義
- Wfurent 語語法概述
- 【Scala】Scala之Packaging and ImportsImport
- Scala學習(六)---Scala物件物件
- protobuf 語法,proto3 語法參考
- Dart語法篇之基礎語法(一)Dart
- JAVA語法糖和語法糖編譯Java編譯
- 2020-09-29【學習筆記】scala語言(三十三) scala中的抽象方法筆記抽象
- dockerfile 語法Docker
- markdown 語法
- 模板語法
- SQL語法SQL
- 語法糖