首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用tcl interp别名重命名内置命令中的tcl

使用tcl interp别名重命名内置命令中的tcl
EN

Stack Overflow用户
提问于 2013-09-27 19:50:08
回答 2查看 1.7K关注 0票数 1

如何在从解释器中重命名现有的tcl命令?

换句话说

代码语言:javascript
运行
复制
interp create test
test alias __proc proc

test eval {
  __proc hello {} {
    puts "hiya"
  }
  hello
}

不幸的是,这是行不通的。但是,如果我隐藏并公开一个不同的名称,这是可行的。但是,我想同时使用命令proc__proc -所以我更喜欢使用别名,或者任何其他方式.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-27 20:14:45

Tcl解释器上的alias命令允许您在解释器中创建一个命令,该命令会导致代码在不同的解释器中运行。这不是你想要的。

我认为以下是你想做的事:

代码语言:javascript
运行
复制
interp create test

test eval {
  rename proc __proc

  __proc hello {} {
        puts "hiya"
  }

  hello
}

然后,您可以将解释器的创建与proc命令的重命名结合起来,如下所示:

代码语言:javascript
运行
复制
proc myinterp {interpName newProcName} {
   interp create $interpName
   $interpName eval "rename proc $newProcName"
}

myinterp test func

test eval { func greet {} { puts "hello" } }
test eval ( greet }
票数 1
EN

Stack Overflow用户

发布于 2013-09-27 21:23:36

你可以

代码语言:javascript
运行
复制
interp alias test __proc test proc

在主插曲中或

代码语言:javascript
运行
复制
interp alias {} __proc {} proc

在奴隶中,因此以下两张纸片都能工作:

代码语言:javascript
运行
复制
interp create test
interp alias test __proc test proc

test eval {
  __proc hello {} {
    puts "hiya"
  }
  hello
}

代码语言:javascript
运行
复制
interp create test

test eval {
interp alias {} __proc {} proc
  __proc hello {} {
    puts "hiya"
  }
  hello
}

test alias __proc procinterp alias test __proc {} proc相同,这意味着从服务器中的__proc将在主服务器中调用proc

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19058961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档