Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Tcl array get无法与进程中的::一起使用_Arrays_Tcl_Global_Environment - Fatal编程技术网

Arrays Tcl array get无法与进程中的::一起使用

Arrays Tcl array get无法与进程中的::一起使用,arrays,tcl,global,environment,Arrays,Tcl,Global,Environment,请参见下面的Tcl代码: proc foo {} { puts "env get is:[array get ::env "DODA" ]" } set env("DODA") bar foo exit 我希望输出是env get is:{DODA bar}相反,它只返回数组get的空列表,即:env get is: 知道我做错了什么吗?这是Tcl 8.5,在Tcl中,数组是关联数组。这样,当涉及到数组的索引时,双引号和大括号就表现为单独的实体 % set user(name) din

请参见下面的Tcl代码:

proc foo {} {
    puts "env get is:[array get ::env "DODA" ]"
}
set env("DODA") bar
foo
exit
我希望输出是
env get is:{DODA bar}

相反,它只返回数组get的空列表,即:
env get is:


知道我做错了什么吗?这是Tcl 8.5,在
Tcl
中,数组是关联数组。这样,当涉及到数组的索引时,双引号和大括号就表现为单独的实体

% set user(name) dinesh
dinesh
% set user("name") DINESH
DINESH
% set user({name}) Dinesh
Dinesh
% parray user
user("name") = DINESH
user(name)   = dinesh
user({name}) = Dinesh
% array size user
3
如您所见,条目
name
“name”
{name}
是不同的

现在,在您的例子中,您已经创建了带有双引号的索引
“DODA”

% set env("DODA") bar
bar
% puts "env get is:[array get ::env \"DODA\" ]"
env get is:{"DODA"} bar
%
否则,

% set env(DODA) bar
bar
% puts "env get is:[array get ::env DODA ]"
env get is:DODA bar
%

好吧,这就解决了。。。干杯