2015-07-08 7 views
5

Ich übte in Swift's Spielplatz und ich konnte nicht herausfinden, warum Swift zu spezifisch ist, wo Programmierer Räume und wo nicht zur Verfügung stellen sollte. Ich habe diese Frage auf vielen Seiten und Chatrooms gestellt, aber keine Antwort bekommen.Was sind die Regeln für Räume in swift

var j: Int = 34 // Right 
var j:Int=23 //Wrong 

Auch in Klasse

self.variable-= 5 //Wrong. Error: Consecutive statements must be followed by ; 
self.variable-=5 // Right 
self.variable -= 5 // Right 

;

Auch dieses ":" verursacht manchmal Probleme mit Leerzeichen.

Ich denke, Leerzeichen sollten absolut keine Auswirkungen auf den Code haben. Es ist normalerweise nur für den Programmierer von Vorteil. Es macht nur den Code besser lesbar, sonst nichts. Was ist die beste Ressource, um alle schnellen Regeln zu Leerzeichen zu lesen?

Antwort

13

Antwort auf den zweiten Teil Ihrer Frage kann swift docs

Die Leerzeichen um einen Operator hier gefunden werden verwendet, um zu bestimmen, ob ein Operator als Präfix-Operator verwendet wird, ein Postfix-Operator oder eine Binäroperators . Dieses Verhalten wird in den folgenden Regeln zusammengefasst:

Wenn ein Operator Leerzeichen um beide Seiten oder um keine Seite hat, wird es als ein binärer Operator behandelt. Als ein Beispiel wird der Operator + in a + b und a + b als ein binärer Operator behandelt.

Wenn ein Operator nur Leerzeichen auf der linken Seite hat, wird er als Präfix unärer Operator behandelt. Als Beispiel wird der Operator ++ in a ++ b als unärer Operator mit Präfix behandelt.

Wenn ein Operator nur auf der rechten Seite Leerzeichen hat, wird er als unfixierter Postfix-Operator behandelt. Als Beispiel wird der Operator ++ in a ++ b als unärer Operator für Postfix behandelt.

Wenn ein Operator auf der linken Seite kein Leerzeichen hat, aber unmittelbar darauf ein Punkt (.) Folgt, wird er wie ein unfixierter Postfix-Operator behandelt. Als Beispiel wird der ++ Operator in a ++. B als unfixierter Postfixoperator (a ++ .b statt a ++ .b) behandelt.

etc ... (die Dokumentation für weitere Informationen hierzu lesen)

Was den ersten Teil Ihrer Frage, ich habe kein Problem sieht mit jeder Art und Weise, die Variablen zu deklarieren.

var j: Int = 34 
var j:Int=23 

Das einzige Problem mit diesem bereitgestellten Code ist, dass Sie j zweimal im selben Bereich deklarieren. Versuchen Sie, eines der js zu einem x oder y oder etwas anderem zu ändern.

Wenn Sie

var j:Int =10 

oder

var j:Int= 10 

Blick auf die oben genannten Regeln fragen wurden. = ist ein Operator also, wenn Sie einen von denen tun würden, würde es als Präfix oder Postfix behandelt werden, und Sie würden den Fehler erhalten, dass Präfix/Postfix = reserviert ist

Diese Regeln sind wegen der Existenz von Operatoren wichtig wie die unären Plus- und Minus-Minus-Operatoren.Der Compiler muss in der Lage sein, zwischen einem binären plus- und einem unären plus-Operator zu unterscheiden. List of operators

Verwandte Themen