Scala 3 新特性之一,是帶來了新 的流程控制格式
詳細的規則是。
if表示式的條件可以不加括號,如果後面是then。while-loop的條件,如果後面是do,可以不加括號。如果for表示式的列舉符後面跟有yield或do,則可以不加括號或括號來書寫。for表示式中的do表示for-loop。一個 catch 後面可以在同一行中跟一個case。如果有多個case,這些case必須出現在大括號中(就像Scala 2中一樣)或縮排塊中。看程式碼示例
if x < 0 then "negative"else if x == 0 then "zero"else "positive"if x < 0 then -x else xwhile x >= 0 do x = f(x)for x <- xs if x > 0yield x * xfor x <- xs y <- ysdo println(x + y)try bodycatch case ex: IOException => handle
總結一下,就是Scala 3中,你能夠省略掉很多括號, 能像寫Python一樣, 就寫if then 怎麼樣怎麼樣
這樣讓整個程式碼更清晰易讀
作為對比, 在Scala 2及以前,是這樣寫的
object Demo { def main(args: Array[String]) { var x = 30; if( x < 20 ){ println("This is if statement"); } else { println("This is else statement"); } }}
以上, scala 3 的語法改進,我覺得是更有效,更Nice的