在Scala案例块中创建新变量?

时间:2014-02-04 09:38:47

标签: scala pattern-matching

这两个陈述的行为相同:

def getNum(inp: String): Double = inp match { case "" | null => 0.0 case _ => inp.toDouble }

def getNum(inp: String): Double = inp match { case "" | null => 0.0 case x => x.toDouble }

问题是,哪一个应该使用哪一个,哪一个基本上比另一个好?

1 个答案:

答案 0 :(得分:3)

两者的字节码相同,因此您可以使用您喜欢的风格。

请注意,在某些情况下,您可能会将复杂表达式作为要匹配的值的来源,这使得引用更加困难。因此,您可以使用case x => x.toDouble表单获得更大的样式一致性。