我找到了以下代码。
val carType = "SUV"
val space = carType match{
case car if(car.contains("SUV") || car.contains("sports")) => "limited"
case "sedan" => "family car"
case _ => "vehicle"
}
println(s"4 Space of $carType is $space")
试图理解第一个案件陈述中“汽车”一词的来源?它是变量吗?如果是这样,它在哪里都没有声明或初始化?有人可以澄清吗?
答案 0 :(得分:5)
为了在限定条件if语句中使用它,它绑定到匹配值。第一种情况是当它包含SUV或运动时,但与第二种情况(“轿车”)并不完全匹配。您需要将其包含在“容器”中,这里是“汽车”。
您可以将其更改为x或其他任何东西,并且行为相同。
if语句称为“后卫”。 https://docs.scala-lang.org/tour/pattern-matching.html