Scala 3新特性:新的流程控制格式

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 x

while x >= 0 do x = f(x)

for x <- xs if x > 0
yield x * x

for
   x <- xs
   y <- ys
do
   println(x + y)

try body
catch 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的

分类: 编程语言 标签: Scala 发布于: 2020-12-26 19:53:04, 点击数: