У меня очень простой проект. Это инструмент командной строки, написанный на Swift 3.0 с использованием Xcode 8.0. Эта программа:Swift 3.0 Использование неразрешенного идентификатора
import Foundation
func aaa() {
print(a)
}
let a = "a"
aaa()
Это работает отлично и печать «а» в консоли, но позволяет сделать эту программу более сложной:
import Foundation
func aaa() {
print(a)
print(b)
}
let a = "a"
let b = "b"
aaa()
И линия
print(b)
отмечен с ошибкой
Use of unresolved identifier 'b'
Мы можем сделать еще проще:
import Foundation
func aaa() {
print(a)
}
aaa()
let a = "a"
И снова, линия
print(a)
отмечена ошибка
Use of unresolved identifier 'a'
Я не новичок, и я undertand, что я могу легко исправить эту ошибку например, положить все переменные в начале программы. Вопрос: почему это происходит? Я думал, что каждый файл с расширением .swift, это класс, и я могу поместить переменную и функции, вызвать функции в любом порядке (все переменные и константы будут глобальными) ... И последнее, у меня нет способности чтобы проверить это на Swift 2.2, но я не помню, что раньше я сталкивался с этой ошибкой, так что это может быть ошибка компилятора Swift 3.0? Спасибо за любой ответ!
Благодарим вас за ответ. Как вы думаете, как мы должны сообщать об этом Apple? – Alex
Да, почему бы и нет? Если вам повезет, и если они ответят вам с другим объяснением, не забудьте поделиться им здесь :) – pedrouan
Я буду, но мне нужно некоторое время для этого ... – Alex