Scala匹配表达式
时间:2020-01-09 10:47:19 来源:igfitidea点击:
Scala的match
表达式可用于在一系列选项之间进行选择,就像多个if语句一样。 Scala的匹配与Java的switch语句的工作原理类似,尽管并不完全相同。这是一个简单的示例:
var myVar = "theValue"; myVar match { case "someValue" => println(myVar + " 1"); case "thisValue" => println(myVar + " 2"); case "theValue" => println(myVar + " 3"); case "doubleValue" => println(myVar + " 4"); }
该匹配表达式将myVar变量的值与四个case语句中的每个值进行比较。如果" myVar"的值与这些值中的任何一个匹配,那么将执行匹配的case语句之后的代码。
与Java的不同之处在于,每种情况后都没有break
语句,但是case语句不会像Java中那样"掉线"。换句话说,在Java中,如果值与case
语句匹配,则随后的所有case语句也将被执行,直到case
语句之一列出了break
为止。
与Java的switch语句的另一个区别是,Scala可以匹配int或者long之外的其他值。 Scala可以在许多其他方面进行匹配。在上面的示例中,使用了字符串。
匹配表达式可以返回值
与Java的switch语句的另一个不同之处是Scala match表达式可以返回一个值。方法如下:
var myVar = "theValue"; var myResult = myVar match { case "someValue" => myVar + " A"; case "thisValue" => myVar + " B"; case "theValue" => myVar + " C"; case "doubleValue" => myVar + " D"; } println(myResult);
注意如何将变量" myResult"设置为等于匹配表达式的值。匹配表达式返回匹配case语句中分配给它的任何值。在此示例中,match表达式将返回myVar +" C"
。