2017-01-30 3 views
5

Я немного озадачен переменной областью в qore 0.8.12. Кажется, что параметры функции имеют ту же область, что и глобальные переменные, - возможно, или я делаю что-то неправильно?Что такое область параметров функции в qore?

3.1.0 [email protected] ~$ cat zk1.q 
%new-style 
%strict-args 

sub fun(string v) 
{ 
    print("xxx\n"); 
} 

string v = "zzz"; 
3.1.0 [email protected] ~$ qore zk1.q 
unhandled QORE System exception thrown in TID 1 at 2017-01-30 08:10:32.612137 Mon +01:00 (CET) at zk1.q:4 
PARSE-ERROR: local variable 'v' was already declared in the same block at zk1.q:9 

Спасибо за объяснение ...

ответ

6

Локальные переменные в рамках верхнего уровня эффективно глобальные нит локальных переменных.

См:

Это делает невозможным использовать то же имя переменной в качестве переменной параметра (который является локальной переменной в области действия функции, метод или закрытие).

Смежные вопросы