Ich habe ein sehr einfaches Projekt. Es ist das Command Line Tool, das mit Xcode 8.0 auf Swift 3.0 geschrieben wurde. Dieses Programm ist:Swift 3.0 Verwendung von nicht aufgelösten Bezeichner
import Foundation
func aaa() {
print(a)
}
let a = "a"
aaa()
Das funktionierte sehr gut und Druck "a" in der Konsole, sondern läßt dieses Programm tut komplexes:
import Foundation
func aaa() {
print(a)
print(b)
}
let a = "a"
let b = "b"
aaa()
Und Linie
print(b)
markiert mit Fehler
Use of unresolved identifier 'b'
können wir noch einfacher machen:
import Foundation
func aaa() {
print(a)
}
aaa()
let a = "a"
Und wieder Linie
print(a)
ist
mit Fehler markiertUse of unresolved identifier 'a'
Ich bin nicht Neuling und ich undertand, dass ich diesen Fehler leicht beheben wie alle Variablen am Anfang des Programms zu setzen. Die Frage ist: Warum passiert es? Ich dachte jede Datei mit der Erweiterung .swift, es ist eine Klasse und ich kann Variablen und Funktionen setzen, Funktionen in beliebiger Reihenfolge aufrufen (alle Variablen und Konstanten wären global) ... Und eine letzte Sache, ich habe keine Fähigkeit um dies auf Swift 2.2 zu testen, aber ich kann mich nicht erinnern, dass ich diesen Bug vorher gesehen habe, kann es also ein Fehler des Swift 3.0 Compilers sein? Vielen Dank für jede Antwort!
Vielen Dank für die Antwort. Wie denken Sie, sollten wir dies Apple melden? – Alex
Ja, warum nicht? Wenn Sie Glück haben und wenn Sie Ihnen mit anderen Erklärungen antworten, vergessen Sie nicht, es hier zu teilen :) – pedrouan
Ich werde, aber ich brauche etwas Zeit dafür ... – Alex