scala基礎語法
val和var
val和var都可以定義變量。val定義不變量,var定義變量
to和until
to和until都是RichInt
的方法,返回一個Range
的實例。1 to 3等價於1.to(3)
點和括號是可選的。在scala中,如果方法有0個或1個參數,則點號可以丟點。
foreach
(1 to 3).foreach( i => print(i + ",") )
元祖
元祖是一個不變對象序列,用逗號分隔符創建,元祖支持多重賦值,可以通過 _1, _2的語法訪問元祖元素
val info = ("louis" , "shanghai")
val (name, address) = info
print(info._1)
print(info._2)
字符串RichString和here document
scala字符串與java中的String相對應,另外scala提供了RichString
類包含capitalize()、lines()和reverse()等便捷方法。scala使用三個雙引號創建多行原始字符串(here document)
注意“sos”.reverse()==”sos”結果是false,
“sos”.reverse().toString()==”sos”是true。
Scala的默認選項
- scala支持腳本
- return是可選的,默認返回最後一行表達式的值
- 分號是可選的
- 不強制捕獲異常
- 默認導入java.lang,scala,scala.Predef等包
運算符
scala的運算符實際上是方法名,方法名的第一個字符決定了它的優先級
如果方法名以冒號(:)結尾,Scala會調換方法調用的參數
scala與java的差異
- scala的賦值結果是Unit,因此不能出現 a = b = c這樣的運算
- scala的==運算表示值的比較,eq()函數表示引用比較
- scala中分號是可選的,但在
{
前一定要加上分號 - scala默認修飾符是public
- 用protected修飾的成員只對本類及派生類可見
- scala使用
[]
控制修飾符的訪問粒度,例如private[類名] - scala中如果使用了return就需要顯示提供返回值的類型,應儘量避免顯示return,而讓scala編譯推演返回類型