Tcl学习之--命名空间

news/2024/8/26 5:16:35

Tcl解释器将全部的命令和全局变量分组管理。这些小组称为命名空间,一个命名空间中的命令和变量不会影响到还有一个命名空间。这些命名空间呈树形组织。一个命名空间的命令能够被还有一个命名空间引入。命名空间树的根就是全局命名空间,它包括了没有明白在其它命名空间中创建的全部命令和变量。

不论什么已经存在的命名空间中的命令和变量,都能够从命名空间内部或外部创建。在命令或变量的名称前面加上命名空间前缀就能够完毕这一点。前缀与名称之间以NameSpace::Var来分隔。若全局命名空间的名称是空字符串。通常仅仅写::Var.

命名空间的主要用途是作为创建相关命名包的机制。命名空间能够帮助创建集合命令,把一个命令空间中公共API编组,呈现为公共命令加子命令的模式。

namespace eval: --> 获取命名空间的名称

假设在命名空间中设置新变量,用以下命令:

namespace delete:--> 删除命名空间

variable命令:--> 对命名空间的变量进行设置或訪问

在当前命名空间中创建变量。假设给出变量的值。就设置。

假设在该命名空间的一个过程中进行处理,它还会使得指定名称的变量不做限定就在过程中可见.

输出结果:

NOTE:总是使用variable命令声明变量。在一个命名空间中,假设訪问一个没有在该命名空间明白声明的变量,Tcl会首先在全局变量中查找这个名称的变量。

假设找到这种全局变量。Tcl会使用它而不是创建一个命名空间变量。Tcl语言的这种行为初看起来好像不方便,事实上这样设计是为了在各个命名空间中,都能非常easy地訪问提前定义的全局变量argv、env等.

 Variable命令不能初始化数组的值。但它能够在命名空间中设置变量,同意过程訪问它们。

也就是说,数组须要单独进行一步初始化操作。

输出结果:

namespace qualifiers命令:--> 取得限定名称的命名空间部分

namespace tail命令:--> 取得限定名称的尾部命名空间

要把各部分名称组成限定名称。仅仅须要用文本的::把它们串联起来。

注意:假设把命名空间保持在一个变量中,须要用以下的后一种形式进行变量替换,否则$变量替换时::会引起错误的解析.

namespace export, namespace import命令: --> 导入导出命令

输出结果:

NOTE:

全局命名空间不会默认导出不论什么命令,并且这一命名空间习惯上是留给应用程序脚本管理的。

库不应该从全局命名空间导出命令,也不应该向全局命令空间导入命令。

namespace forget命令: -->  防止删除自己创建的命名空间

namespaceimport命令有快照的含义:它仅仅导入在调用它时处于可导出状态的命令。并且,默认情况下它不会覆盖已经存在的命令,即使这些命令是曾经导入的。

能够用 –force选项强制指定进行覆盖。

假设希望从命名空间中移除曾经导入的命令。而又怕删掉自己创建的命名空间。应该使用namespace forget命令。

namespace current命令: -->  获取当前命名空间的名称

namespace parent命令: -->  获取当前命名空间的父命名空间

namespace childred命令: -->  获取当前命名空间的子命名空间

info commond命令: -->  查看命名空间中的命令和变量

namespace which命令: --> 获取全然限定名称

namespace origin命令: -->  获取命名空间的来源

NOTE:

namespaceorigin:能够查看命令的原始来源,即使它被重命名过。

namespace ensemble create命令: -->  測试命令

该命令用于測试一个命令是否为集合命令,是则为真。



http://www.niftyadmin.cn/n/1673931.html

相关文章

dom 修改xml java_如何使用DOM方式修改XML文件内容

如何使用DOM方式修改XML文件内容发布时间:2020-07-09 15:23:57来源:亿速云阅读:125作者:Leah本篇文章为大家展示了如何使用DOM方式修改XML文件内容,代码简明扼要并且容易理解,绝对能使你眼前一亮&#xff0…

1.3.3、Java基础下__二维数组理解,定义,初始化,长度

Java系列文章目录 作者:Dcc_BigData 文章目录Java系列文章目录前言1、对于二维数组的理解2、二维数组定义格式(2种)3、二维数组的初始化4、动态初始化:5、静态初始化6、数组的长度7、数组元素的默认初始化值总结前言 本文要记录的大概内容: 二维数组理解…

c语言 函数多个参数,用C语言实现参数个数可变的函数

采用C语言编程的时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的所有实际参数。但在某些情况下希望函数的参数个数可以根据需要确定。典型的例子有大家熟悉的函数printf()、scanf()和系统调用execl()等。那么它们是怎样实现的…

c语言编程求预测子女身高,C语言的那些题(三) —— 编程计算身高问题完善版

发上去以后,一位看到我文章的朋友告诉我,代码逻辑上有点问题,而且分支结构过多,会在以后开发过程中影响程序运行效率,于是他告诉我应该完善哪些地方.很高兴他能够抽出时间阅读我的文章,并且花时间告诉我存在的问题.希望其他朋友也能多提意见,大家一起学习.听取了我那位朋友的意…

java生产校验码

2019独角兽企业重金招聘Python工程师标准>>> 有两种方式&#xff0c;一种jsp方式&#xff0c;一种java方式&#xff08;该方式自己改造的&#xff09; 【采用jsp方式】 服务端生成代码&#xff1a; <% page contentType"image/jpeg"import"java…

Create, Save, and Open Trace Documents

Create, Save, and Open Trace Documents 在仪器中&#xff0c;所有的工作都是在跟踪文档中完成的&#xff0c;其中包含一组工具、它们的配置设置和它们收集的数据。一旦您使用跟踪文档来配置应用程序&#xff0c;就可以保存文档以保存收集的跟踪数据&#xff0c;并稍后再打开以…

java怎么设计好看的界面_问下JAVA做出来的程序怎么把界面改的好看点啊

问下JAVA做出来的程序怎么把界面改的好看点啊RT~~~谢谢大家指教搜索更多相关的解决方案:JAVA 界面----------------解决方案--------------------------------------------------------别费这个劲了.----------------解决方案-----------------------------------------------…

计算机二级c语言编程题库100题下载,计算机二级C语言编程试题库(100题).pdf

. . . .2011,2012 年上机题 100 题库1: 第 1 题 m 个人的成绩存放在 score 数组中 &#xff0c;请编写函数 fun, 它的功能是 &#xff1a;将低于平均分的人作为函数值返回 &#xff0c;将低于平均分的分数放在 below 所指定的函数中 。答案 &#xff1a;int fun(int score[],in…