什么是qore中的函数参数范围?

时间:2017-01-30 07:17:58

标签: unix qore

我对qore 0.8.12中的变量范围感到有些困惑。似乎函数参数与全局变量具有相同的范围 - 这是可能的,还是我做错了什么?

3.1.0 kveton@kvela ~$ cat zk1.q 
%new-style
%strict-args

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

string v = "zzz";
3.1.0 kveton@kvela ~$ 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

感谢您的解释......

1 个答案:

答案 0 :(得分:6)

顶级作用域中的局部变量实际上是全局线程局部变量。

见:

这使得无法使用相同的变量名作为参数变量(它是定义的函数,方法或闭包范围内的局部变量)。