J'ai un projet très simple. C'est l'outil de ligne de commande écrit sur Swift 3.0 en utilisant Xcode 8.0. Ce programme est le suivant:Swift 3.0 Utilisation de l'identificateur non résolu
import Foundation
func aaa() {
print(a)
}
let a = "a"
aaa()
Cela fonctionne parfaitement bien et impression "a" dans la console, mais permet de faire ce programme plus complexe:
import Foundation
func aaa() {
print(a)
print(b)
}
let a = "a"
let b = "b"
aaa()
Et la ligne
print(b)
est marqué avec erreur
Use of unresolved identifier 'b'
Nous pouvons faire encore plus facile:
import Foundation
func aaa() {
print(a)
}
aaa()
let a = "a"
Et encore une fois, la ligne
print(a)
est marqué par erreur
Use of unresolved identifier 'a'
Je ne suis pas novice et j'undertand que je peux facilement corriger cette erreur comme mettre toutes les variables au début du programme. La question est: pourquoi cela se passe-t-il? Je pensais que chaque fichier avec l'extension .swift, c'est une classe et je peux mettre des fonctions variables, appeler des fonctions dans n'importe quel ordre (toutes les variables et constantes seraient globales) ... Et une dernière chose, je n'ai pas de capacité pour tester cela sur Swift 2.2, mais je ne me souviens pas d'avoir déjà fait face à ce bug, alors peut-il s'agir d'une erreur du compilateur 3.0 de Swift? Merci pour votre réponse!
Merci de votre réponse. Comment pensez-vous, devrions-nous signaler cela à Apple? – Alex
Oui, pourquoi pas? Si vous êtes chanceux et s'ils vous répondent avec des explications différentes, n'oubliez pas de le partager ici :) – pedrouan
Je le ferai, mais j'ai besoin de temps pour cela ... – Alex