2017-02-04 3 views
-2

Ich untersuchte diese Frage: How do I print the type or class of a variable in Swift?Swift - get Klassennamen

Aber noch kann ich nicht Antwort finden, wie die Objekt-Leistungsklasse in Swift?

In Obj-C war das einfach - [myClass class]; aber in Swift kann ich nicht verstehen, wie man das macht.

Betrachten wir zum Beispiel folgende:

let coordinates = (x: 3, y: 2, z: 5) 
print(type(of: coordinates)) 

Dieser Ausgang: "(Int, Int, Int) \ n"

aber ich möchte nicht wissen, was drin ist, ich will Klasse wissen Name der Koordinaten! Was ist das? Tuple, ein Array oder ein Wörterbuch?

Kann jemand Code-Schnipsel zur Verfügung stellen, das erklären? Vielen Dank!

+2

'coordinates' hat keine Klasse. Es ist ein Tupel und sein Typ ist '(Int, Int, Int)' wie gezeigt. – Paulw11

+1

Zuallererst ist es eine Struktur, keine Klasse. Zweitens ist der Typ ein Tupel von drei 'Int's, was stimmt nicht mit dem Ergebnis? – vadian

+0

@vadian Warum ist das keine Klasse? Was ist, wenn ich eine Array-Klasse wie dieses oder ein Wörterbuch definieren möchte? Warum schnell entscheiden für mich, ob ich Klasse oder Struktur erstellen möchte? –

Antwort

2

Tuple ist eine Verbindung, Typ und Verbindungstypen haben keine Namen. Sie können die Arten seiner Elemente erhalten, wie Sie sagten. Also ist Ihr Code in Ihrer Frage der richtige Weg, um den Typ der Variablen zu erhalten. Zum Beispiel wird der folgende Code den Typ des Wörterbuchs ausdrucken.

let someDictionary = ["Alex": 31, "Paul": 39] 
print(type(of: someDictionary)) 

Ausgang: Wörterbuch < String, Int>

Sie können detaillierte Informationen über die Arten von Swift Programming Language Reference haben.