'我正在探索scala。 是否有更简洁和/或更惯用的方式来编写以下代码?
def getValToAdd(c: Char): Int = {
if ('(' == c) {
1
} else if (')' == c) {
-1
} else {
0
}
}
答案 0 :(得分:4)
你可以删除所有花括号,它们是多余的:
def getValToAdd(c: Char): Int =
if ('(' == c) 1
else if (')' == c) -1
else 0
但更惯用的方法是使用Pattern Matching
def getValToAdd(c: Char): Int = c match {
case '(' => 1
case ')' => -1
case _ => 0
}
您也可以删除返回类型,编译器可以解决它:
def getValToAdd(c: Char) = c match {
case '(' => 1
case ')' => -1
case _ => 0
}
但除非这是一种私有效用方法,否则我不建议这样做。
答案 1 :(得分:0)
def getValToAdd(c: Char): Int = c match {
case '(' => 1
case ')' => -1
case _ => 0
}