2016-06-01 12 views
1

gerade druckt mit Swift getting started, bei the Wikipedia article sucht, hat es diesen Code:rasche for-in-Schleife in Spielplatz nur zählt, Schleifen, nicht

// ein Wörterbuch mit vier Elementen definieren:
// hat Jedes Element einen Namen und Alter der Person
lassen Menschen = [ "Anna": 67 "Beto": 8, "Jack": 33, "Sam": 25]

// Jetzt verwenden wir Swifts flexibel Enumerator System
// um beide Werte in einer einzigen Schleife zu extrahieren
für (Name, Alter) in Menschen {
  print ("\ (Name) ist \ (Alter) Jahre alt.")
}

dies in XCode in einen Spielplatz Einlochen, erwartete ich das zu sehen:

Anna is 67 years old.
Beto is 8 years old.

usw.

Stattdessen in der rechten Handplatte, es zeigt nur das:

(4 times)

Es gibt einen Knopf über auf der rechten Seite, über die (4 times) die, wenn ich es klicken, verursacht Jack is 33 years old. innerhalb der Schleife anzuzeigen. (Siehe Screenshot unten.) Klicken Sie erneut auf die Schaltfläche, und das verschwindet. Kann mir jemand helfen, die Logik dahinter zu verstehen?

for-in mystery

+0

Die gedruckten Linien sind sichtbar in der Debug-Umgebung (⇧⌘Y) – vadian

+0

Swift verwendet '\()', um einen Zahlenwert in einer Zeichenkettenausgabe auszudrucken, zum Beispiel: 'print (" Dies ist eine Zeichenkette \ (Nummer).) ' –

Antwort

4

Kleines Problem in Ihrem Code Sie einen Parameter enthalten sollten "\ (Name)" nicht (Name), um sie zu drucken. wie diese so sollten Sie

for (name, age) in people { 
    print("\(name) is \(age) years old.") 
} 

verwenden Wenn Sie alle den Wert zeigen wollen, wie Sie folgen auf Frage nur diese Schritte fragte: -

**Step 1** 

Klicks das + rechts corner.Then schreiben zeigt neueste Wert. enter image description here

Schritt 2

Wenn Sie alle Werte anzeigen möchten klickt auf den letzten Wert und der rechten Maustaste und wählen Wert Geschichte

enter image description here

Schritt 3

Dann können Sie alle Werte sehen.

enter image description here

+1

Der Backslash war in meinem Code aber" verschwand "in der Stapelüberlaufabschrift. Ich habe es durch eine Verdoppelung des Backslash bekommen: \\ Sowohl diese als auch die nächste Antwort waren nützlich und korrekt. Ich wünschte, ich könnte beide als korrekte Antwort. – user1147171

2

, was Sie vermissen String-Interpolation genannt wird. Wenn Sie also einen Wert einer Variablen/Konstante ausgeben wollen, indem Sie ihn mit einer Zeichenfolge verknüpfen, müssen Sie dies so machen.

print("\(name) is \(age) years old.") 

Zweitens müssen Sie drücken (⇧⌘Y), um

die Ausgabe in debuging Bereich zu sehen

enter image description here