/ / Esiste un modo più succinto per esprimere questo se espressione in scala - scala

Esiste un modo più efficace per esprimere questa espressione se in scala - scala

Sto solo esplorando la scala. Esiste un modo più succinto e / o più idiomatico di scrivere il seguente codice?

def getValToAdd(c: Char): Int = {
if ("(" == c) {
1
} else if (")" == c) {
-1
} else {
0
}
}

risposte:

4 per risposta № 1

Puoi rimuovere tutte le parentesi graffe, sono "ridondanti:

def getValToAdd(c: Char): Int =
if ("(" == c) 1
else if (")" == c) -1
else 0

Ma è un modo molto più idiomatico di usare Pattern Matching

def getValToAdd(c: Char): Int = c match {
case "(" => 1
case ")" => -1
case _ => 0
}

Puoi anche eliminare il tipo restituito, il compilatore può risolverlo:

def getValToAdd(c: Char) = c match {
case "(" => 1
case ")" => -1
case _ => 0
}

Ma non lo consiglierei a meno che questo non sia un metodo di utilità privato.


0 per risposta № 2
def getValToAdd(c: Char): Int = c match {
case "(" => 1
case ")" => -1
case _ => 0
}