qore 中的函数参数范围是什么?
what is function parameter scope in 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
感谢解释...
top-level 范围内的局部变量实际上是全局 thread-local 变量。
参见:
- https://docs.qore.org/current/lang/html/variables.html#local_variables
- https://docs.qore.org/current/lang/html/threading.html#threading_and_variables
这使得无法使用与参数变量相同的变量名(它是正在定义的函数、方法或闭包范围内的局部变量)。
我对 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
感谢解释...
top-level 范围内的局部变量实际上是全局 thread-local 变量。
参见:
- https://docs.qore.org/current/lang/html/variables.html#local_variables
- https://docs.qore.org/current/lang/html/threading.html#threading_and_variables
这使得无法使用与参数变量相同的变量名(它是正在定义的函数、方法或闭包范围内的局部变量)。