TCL自学笔记-14 定义命名空间

使用命名空间命令创建命名空间。一个简单的例子,创建命名空间如下图所示

namespace eval MyMath {

  # Create a variable inside the namespace

variable myResult

}

# Create procedures inside the namespace

proc MyMath::Add {a b } {  

  set ::MyMath::myResult [expr $a + $b]

}

MyMath::Add 10 23

puts $::MyMath::myResult

当执行上面的代码,产生以下结果:

33

namespace eval MyMath { 

variable myResult

}

proc MyMath::Add {a b } {  

  set ::MyMath::myResult [expr $a + $b]

}

MyMath::Add 10 23

puts $::MyMath::myResult

在上面的程序,可以看到有一个变量myResult和程序Add的一个命名空间。这使得创建变量和程序可根据相同的名称在不同的命名空间。

以上程序也可以用以下定义函数的方法实现。

proc Add {a b } {  

   return [expr $a + $b]

}

set c [Add 10 23]

puts  $c

嵌套的命名空间

TCL允许命名空间的嵌套。一个简单的例子,嵌套的命名空间如下。

namespace eval extendedMath {

  # Create a variable inside the namespace

   namespace eval MyMath {

     # Create a variable inside the namespace

     variable myResult

   }

}

set ::extendedMath::MyMath::myResult "test2"

puts $::extendedMath::MyMath::myResult

默认 最新
当前暂无评论,小编等你评论哦!
点赞 1 评论 收藏
关注