VS
Size: a a a
VS
M
VS
VS
AT
O
func main() {Константа
if ABC == 0 { fmt.Println("HELLO") }
}
const ABC = 0
ABC
задекларированна после функции main()
, и в Go этот код будет рабочий, потому что походу Go проверяет переменную в глобальном скопе в самом последнем моменте этапе парсинга. .NAME
токен допустим в if
выражении я проверял есть ли эта переменная в таблице. ABC
должна была быть задефайнина перед этим самым выражением, перед самой фукнцией, иначе был бы compile time error. То есть код выше не работал бы.placeholder = true
, означает что этот плейсхолдер должен быть снят как только точно такая же переменная будет найдена и она будет глобальной, ибо с локальными переменными такая фишка уже не прокатит, парсить все пакеты и прочее, и потом перед этапом компиляции как-то проходится по массиву данных в таблице и искать все placeholder = true переменные (значит что плейсхолдер не был снят и переменная не была найдена), выдавать ошибку мол переменная ".NAME" не найдена там то там то. #include<packagename>;
и только как все пакеты будут импортированны и проверены тем же самым методом, до тех пор пока не будет EOF, можно переходить к нашему внешнему пакету для дальнейшей проверки, то есть если идет func
конструкция или любая другая конструкция, пропускать её до тех пор пока не наткнемся на EOF или новую декларацию глобальной переменной.А
K
AK
func main() {Константа
if ABC == 0 { fmt.Println("HELLO") }
}
const ABC = 0
ABC
задекларированна после функции main()
, и в Go этот код будет рабочий, потому что походу Go проверяет переменную в глобальном скопе в самом последнем моменте этапе парсинга. .NAME
токен допустим в if
выражении я проверял есть ли эта переменная в таблице. ABC
должна была быть задефайнина перед этим самым выражением, перед самой фукнцией, иначе был бы compile time error. То есть код выше не работал бы.placeholder = true
, означает что этот плейсхолдер должен быть снят как только точно такая же переменная будет найдена и она будет глобальной, ибо с локальными переменными такая фишка уже не прокатит, парсить все пакеты и прочее, и потом перед этапом компиляции как-то проходится по массиву данных в таблице и искать все placeholder = true переменные (значит что плейсхолдер не был снят и переменная не была найдена), выдавать ошибку мол переменная ".NAME" не найдена там то там то. #include<packagename>;
и только как все пакеты будут импортированны и проверены тем же самым методом, до тех пор пока не будет EOF, можно переходить к нашему внешнему пакету для дальнейшей проверки, то есть если идет func
конструкция или любая другая конструкция, пропускать её до тех пор пока не наткнемся на EOF или новую декларацию глобальной переменной.K
AK
А
O
K
А
func main() {Константа
if ABC == 0 { fmt.Println("HELLO") }
}
const ABC = 0
ABC
задекларированна после функции main()
, и в Go этот код будет рабочий, потому что походу Go проверяет переменную в глобальном скопе в самом последнем моменте этапе парсинга. .NAME
токен допустим в if
выражении я проверял есть ли эта переменная в таблице. ABC
должна была быть задефайнина перед этим самым выражением, перед самой фукнцией, иначе был бы compile time error. То есть код выше не работал бы.placeholder = true
, означает что этот плейсхолдер должен быть снят как только точно такая же переменная будет найдена и она будет глобальной, ибо с локальными переменными такая фишка уже не прокатит, парсить все пакеты и прочее, и потом перед этапом компиляции как-то проходится по массиву данных в таблице и искать все placeholder = true переменные (значит что плейсхолдер не был снят и переменная не была найдена), выдавать ошибку мол переменная ".NAME" не найдена там то там то. #include<packagename>;
и только как все пакеты будут импортированны и проверены тем же самым методом, до тех пор пока не будет EOF, можно переходить к нашему внешнему пакету для дальнейшей проверки, то есть если идет func
конструкция или любая другая конструкция, пропускать её до тех пор пока не наткнемся на EOF или новую декларацию глобальной переменной.O
А
А
O