我有以下代码
set result {}
apply {x {expr {$x*100}} ns2} {1,2,4}
在上面的代码中,命名空间的重要性是什么,如何使用命名空间变量或将结果存储到命名空间
答案 0 :(得分:1)
让我们获取命名空间和命名空间变量:
% namespace eval example {variable result 0}
使用variable
命令将名称result
声明为lambda中的命名空间变量:
% apply {x {variable result ; set result [expr {$x * 100}]}} 3
% set ::example::result
# => 0
% set ::result
# => 300
lambda使用全局命名空间,因为我们没有指定任何命名空间。
% apply {x {variable result ; set result [expr {$x * 100}]} ::example} 3
% set ::example::result
# => 300
就是这样。