我有以下代码
set result {}
apply {x {expr {$x*100}} ns2} {1,2,4}
在上面的代码中命名空间的重要性是什么,我如何使用命名空间变量或将结果存储到命名空间
最佳答案
让我们得到一个命名空间和一个命名空间变量:
% 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
就在那里。
文档:
* (operator) ,
apply ,
expr ,
namespace ,
set ,
variable
关于namespaces - TCL 在应用中使用命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38407940/