namespaces - TCL 在应用中使用命名空间

标签 namespaces tcl

我有以下代码

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/

相关文章:

c++ - 如何从另一个命名空间中的全局命名空间定义友元类?

python - 用于移植到 Python 代码的 Tcl 面向对象扩展

regex - Expect - 如何在一个交互循环中执行多个正则表达式匹配?

python - 如何用py2exe更正TCL_LIBRARY和TK_LIBRARY

PHP:在带有命名空间的类中使用不带命名空间的导入类

python - 如何将子模块导入父命名空间?

javascript - node.js 中的命名空间导入

namespaces - 使用 DQL 转义命名空间中的反斜杠(Doctrine 2)

shell - 做一个 tail -F 直到匹配一个模式

arrays - 返回数组列表