2017-05-20 13 views
0

Jede Variable in swift hat einen Typ.Wie man den Typ einer Variablen in swift erhält

var C: Int = 0 // Typ Int

var d: (Int, (String, Double)) // Typ ist (Int, (String, Double))

Wie bekomme ich den Typ einer Variablen. Siehe Beispiel unten.

func retSomeThing()-> ((Int,(String,b: Int))){ 
    return(10,("something",b: 56)) 
} 

var a = retSomeThing() 
var b = retSomeThing() 
if (a.type.equal(b.type)) { // my problem is here. 
    print("Hala Madrid") 
} 

benutzte ich diesen Code

a.dynamicType 

Aber es hat gezeigt: Wert des Tupels Typ '(Int, (String, b: Int))' hat kein Mitglied 'dynamicType'

+0

Ich sehe nicht, wie die Notwendigkeit, Ihr Beispiel ilustrates die dynamischen Typen von 'a' und 'b' zu bekommen - Du weißt schon, dass sie vom selben Typ sind. – Hamish

+0

@Hamish Ja, ich kenne den Typ in diesem Beispiel. Aber ich muss Typ Tupel-Variablen bekommen. –

+1

Spezifisch sehen Sie [diese Antwort] (http://stackoverflow.com/a/40113416/2976878) zu den verbundenen Q & A. – Hamish

Antwort

3

Sie können den Typ einer Variablen mit dem Schlüsselwort is überprüfen.

var a = 0 
var b = "demo" 
if (a is Int)) { 
    print("It's an Int") 
} 

if (b is String)) { 
    print("It's a String") 
} 

beliebig komplexe Art zu vergleichen, Sie unter Methode verwenden können:

if type(of: abc) == type(of: def) { 
    print("matching type") 
} else { 
    print("something else") 
} 
+0

'ist' ist nur nicht für Tupel Valus –

+0

@AmirShabani Überprüfen Sie die aktualisierte Antwort –

Verwandte Themen