Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1512791
  • 博文数量: 297
  • 博客积分: 10010
  • 博客等级: 上将
  • 技术积分: 3082
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 11:36
文章分类

全部博文(297)

文章存档

2011年(1)

2009年(45)

2008年(67)

2007年(184)

我的朋友

分类:

2009-03-24 13:59:55

Tcl 名字空间

namespace 

  创建和操纵命令和变量的上下文(content)。

简介:

  一个名字空间是一个命令和变量的集合,通过名字空间的封装来保证他们不会影响其它名字空间的变量和命令。 Tcl 总是维护了一个全局名字空间 global namespace 包含了所有的全局变量和命令。

  namespace eval允许你创建一个新的namespace。

  例如:


namespace eval Counter { 
namespace export Bump 
variable num 0 

proc Bump {} { 
variable num//声明局部变量 
incr num 
} 
} 

  名字空间是动态的,可变的。

  例如:


namespace eval Counter { 
variable num 0//初始化 
proc Bump {} { 
variable num 
return [incr num] 
} 
} 

//添加了一个过程 
namespace eval Counter { 
proc test {args} { 
return $args 
} 
} 

//删除test 
namespace eval Counter { 
rename test "" 
} 

  引用:


set Counter::num 
//return 0 

  也可以用下面的方式添加:

proc Foo::Test {args} {return $args} 

  或在名字空间中移动:

rename Foo::Test Bar::Test
阅读(2000) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~