zoukankan      html  css  js  c++  java
  • Tcl学习之--命名空间

    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命令: -->  測试命令

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


  • 相关阅读:
    倒立摆
    Mybatis在oracle、mysql、db2、sql server的like模糊查询
    BUG系列:转让startActivityForResult()&onActivityResult()没有反应
    建立地方Jekyll周边环境
    HDU 1535 Invitation Cards (POJ 1511)
    STM8S---IO复用配置(STVP方式)
    【菜鸟看框架】——EF怎样自己主动生成实体
    Keywords Search (ac 自己主动机)
    liGDX life_cycle (生命周期)
    html浏览器兼容性的 JavaScript语法
  • 原文地址:https://www.cnblogs.com/yangykaifa/p/6978685.html
Copyright © 2011-2022 走看看