2016-11-14 4 views
-2

Ich versuche, den isInstanceOf -Operator zu verwenden, um einen Wert aus einem Tupel zu erhalten und zu überprüfen, ob es von einem bestimmten Typ ist. Ich kratze mich über den Fehler und möchte keine Match Cases verwenden.Vergleichen von Objekten mit isinstanceOf

val t = ("ww",2, 3.4) 

if(t._1 isInstanceOf[String]) 
    println("yes") 

Der Fehler, den ich bekommen ist:

<console>:1: error: type application is not allowed for postfix operators 
+1

Der Compiler kennt alle Elementtypen eines 'Tuple'. Wenn Sie 'isInstanceOf' verwenden, um ein Tupel zur Laufzeit zu testen, liegt ein Fehler in Ihrem Design vor. – jwvh

Antwort

4

Fehlender Punkt .

Korrigierte

if(t._1.isInstanceOf[String]) println("yes") 
1

Sie benötigen einen Punkt zwischen den Variablen und isInstanceOf:

if (t._1.isInstanceOf[String]) 

Ihre Schreibweise ohne Punkt als Postfixoperator ist nicht erlaubt, da die Funktion einen Typparameter (String) benötigt. Ich weiß nicht genau, warum das Postfix-Notation ausschließt, aber ich denke, es ist einfach zu schwer zu parsen.

Verwandte Themen