+ -
当前位置:首页 → 问答吧 → tcl命名空间有个问题,咨询大家

tcl命名空间有个问题,咨询大家

时间:2010-12-15

来源:互联网

  1. % namespace eval ::t {
  2.         proc dump { args } {
  3.                 puts [ list [ llength $args ] $args ]
  4.         }

  5.         proc ref_dump { } {
  6.                 return [ namespace code { dump 3 } ]
  7.         }
  8. }
  9. %
  10. % namespace eval ::t { dump 3 { 4 5 } }
  11. 2 {3 { 4 5 }}
  12. % namespace eval ::t dump 3 { 4 5 }
  13. 3 {3 4 5}
  14. % namespace inscope ::t { dump 3 { 4 5 } }
  15. 2 {3 { 4 5 }}
  16. % namespace inscope ::t dump 3 { 4 5 }
  17. 2 {3 { 4 5 }}
  18. % set script [::t::ref_dump]
  19. ::namespace inscope ::t { dump 3 }
  20. % puts $script
  21. ::namespace inscope ::t { dump 3 }
  22. % ::namespace inscope ::t {dump 3}    ; # 这是 proc 的名字
  23. 1 3
  24. %
复制代码
namespace eval ::t { dump 3 { 4 5 } } 和 namespace eval ::t dump 3 { 4 5 } 有什么区别,为什么返回值不一样,但是namespace inscope ::t dump 3 { 4 5 }
和 namespace inscope ::t dump 3 { 4 5 } 返回值却一样。请高手帮忙解惑下。。

作者: kingkick   发布时间: 2010-12-15

tcl 快忘光了,楼主既然来 perl 版了不如就学 perl 吧,我给你解释 perl

作者: zhlong8   发布时间: 2010-12-15