[FIXED] Scala-Funktion – Typenkonflikt. Erforderlich: Null. Gefunden: Zeichenkette

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 Optionals 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)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like