Ausgabe
Ich habe ein Problem mit Typkonflikten in der Scala-Funktion. Compiler gibt einen Fehler zurück:
def isLarger(inputNum: Int) = {
var res = null
if (inputNum.>(10)) {
res = "aaa"
}
res
}
Wenn inputNum größer als 10 ist, geben Sie String “aaa” zurück, wenn nicht, geben Sie null zurück. Aber Typübereinstimmung. Wieso den? Irgendeine Idee, was das Problem sein könnte?
Lösung
Versuchen Sie, eine Typdeklaration hinzuzufügen
var res: String = null
Übrigens brauchst du keine var
. If-else ist ein Ausdruck
def isLarger(inputNum: Int) = {
val res: String =
if (inputNum > 10)
"aaa"
else null
res
}
Das Konzept des fehlenden Werts wird besser mit Option
als ausgedrücktnull
def isLarger(inputNum: Int) =
if (inputNum > 10)
Some("aaa")
else None
Beantwortet von – Dmytro Mitin
Antwort geprüft von – Gilberto Lyons (FixError Admin)