2016-04-27 12 views
0

Typ Inferenz ist ein mächtiges Attribut von Swift. Dies bedeutet, dass der Compiler den Typ des Literals aus dem vom Programmierer bereitgestellten Wert ableiten kann. Die explizite Typspezifikation wird nicht benötigt.Warum Literalwert hat keinen Typ?

Zum Beispiel var IntNum = 3; Der Compiler kann folgern, dass die Variable IntNum vom Typ Int ist. Wenn der Benutzer in Xcode den Schlüssel drückt und auf den Namen der Variablen klickt, hier IntNum, dann sagt Xcode Ihnen, um welchen Typ es sich handelt. Wenn ich das jedoch auf den Literalwert 3 tat, bietet Xcode nichts. Ich denke, der Literalwert, den ich auf den Bildschirm lege, hat überhaupt keinen Typ, nur die Objektvariable und die Konstante haben die Eigenschaft type.

Ich denke nur so, kann mir das jemand erklären?

Prost SL

Antwort

4

Das ist richtig.

Von the documentation

Typ Sicherheit und Typ Inference

Typ-Inferenz ist besonders nützlich, wenn Sie einen konstanten oder variable mit einem Anfangswert deklarieren. Dies geschieht oft durch Zuweisung eines Literalwerts (oder Literals) an die Konstante oder Variable am Punkt , den Sie deklarieren. (Ein wörtlicher Wert ist ein Wert, der direkt im Quellcode angezeigt wird)

...

Wenn Sie integer kombinieren und Gleitpunktliterale in einem Ausdruck, eine Art von Doppel wird aus der abgeleitet wird Kontext:

let anotherPi = 3 + 0.14159 
// anotherPi is also inferred to be of type Double 

der Literal-Wert von 3 hat keine explizite Art an und für sich und so ein entsprechenden Ausgangstyp Double ist aus dem Vorhandensein von eine Gleitkommazahl gefolgert wörtlich als Teil der Addition.