Tcl 将变量的值作为变量的名称

2023-12-04

我在使用 Tcl 时遇到一些问题。我有一个变量,里面有一个字符串。但现在我希望这个字符串成为下一个变量的名称。

我在网上发现了一些类似的问题,但这些都是关于将一​​个变量的值放入另一个变量中。不使用它作为变量的名称。

这是一个示例代码来帮助解释:

    foreach key [array names ::openedFiles] {
    puts $::openedFiles($key)
    set filename [file tail $::openedFiles($key)]
    set parts [split $filename .]
    set name [lindex $parts 0]

    puts $name

    $L1 create cell $name

    set "value of $name" [ layout create $::openedFiles($key) -dt_expand -log LUN.log]

所以基本上它必须执行以下操作。该数组中有一些路径字符串。我只从路径中获取文件名,而没有文件扩展名。

然后我想创建一个变量“cell”,它是“$name”的值。因此,当文件名是“Test”时,$name的值将是“Test”,我想像这样执行最后一行

     set Test [ layout create $::openedFiles($key) -dt_expand -log LUN.log]

这样 $name 的值将是新变量的名称。因此我可以创建一个变量,其中包含数组中所有值的名称。

任何帮助或指示都会很棒!

非常感谢!


正确的解决方案是使用$name作为要设置的第一个参数

set name "foo"
set $name "bar"
puts $foo ;# -> bar

但如果你尝试使用$name它会产生foo, not bar(这就是您根据注释在代码中所做的事情。我不知道为什么您需要一个您不知道名称的变量,但无论如何:

puts [set $name] ;# -> bar

会给你正确的东西。对于对象也是如此:

set topcell [[set $name] topcell]

所以我必须问你:那么你想用动态命名变量做什么呢?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tcl 将变量的值作为变量的名称 的相关文章

  • JavaScript 变量作用域

    我遇到了 JavaScript 全局变量 称为 TimeStamp 未在加载时定义的问题 至少我认为这就是问题所在 我从这里开始 定义时间戳 document ready function AddTest var TimeStamp nul
  • 如何了解来自不同...“命名空间”的变量?

    如何从外部 javascript 文件中访问在另一个地方声明的某个变量 假设在一个 html 文件中我有以下内容 在 otherfile html 的部分中 我有 alert a 我如何确保收到一条提示消息 某事 我认为Google Ads
  • 在bash中将两个变量相除

    我试图在 bash 中划分两个 var 这就是我得到的 var1 3 var2 4 echo var1 var2 我总是遇到语法错误 有谁知道出了什么问题吗 shell 解析仅对整数除法有用 var1 8 var2 4 echo var1
  • Ruby 中@@ 和@ 有什么区别? [复制]

    这个问题在这里已经有答案了 我刚刚开始学习 Ruby 一直无法找到关于 和 在类变量方面的区别的很好的解释 如果有人可以提供一个基本的直观示例 那就太好了 另外它们可以互换吗 前缀为的变量 是一个类变量 前缀为 是一个实例变量 在这个答案中
  • JavaScript 动态变量名称[重复]

    这个问题在这里已经有答案了 好吧 我想在用户单击时创建变量 每次单击都会添加一个新变量 我目前正在使用 jquery 和 javascript 我无法在服务器端执行此操作 这必须在浏览器中完成 newCount document getEl
  • html 表单发布到 Flex 应用程序

    我有一个基本完成的 Flex 应用程序 它使用 Zend AMF 来连接 提供数据 我的应用程序确实有一个登录屏幕 看起来工作正常 现在我想在我的网站上添加另一个登录表单 允 许用户输入用户名 密码 提交表单时应将数据传递给 Flex 应用
  • PHP 静态变量用双引号引起来

    如何让 PHP 计算双引号中的静态变量 我想做这样的事情 log self CLASS METHOD entering 我尝试过各种 组合来获取变量值self CLASS 但没有任何效果 我目前已经解决了字符串连接问题 但输入起来很痛苦 l
  • 强制 PayPal 始终请求信用卡信息而不是登录表单?

    我们的网站采用贝宝付款标准 当用户在我们的网站上填写他们的请求并按下 PayPal 按钮 立即购买 时 我们会将所有变量提交给 PayPal 以便他们可以处理付款 对于那些以前从未使用过贝宝并通过我们的网站付款的用户来说 它运行得非常好 因
  • 如何检查 TCL 的标准输入缓冲区是否为空?

    With fconfigure http www tcl tk man tcl8 6 TclCmd fconfigure htm您可以获取和设置频道选项 buffering指定缓冲类型 默认为line for stdin 有没有办法检查缓冲
  • 液体字符串中的转义字符

    我正在尝试将包含各种尺寸的标签列表放在一起 在 Shopify 中使用 Liquid 尺寸使用单引号和双引号表示英寸和英尺 因为它同时使用两者 所以会导致字符串正确关闭的问题 我尝试过使用标准转义字符 但这似乎不起作用 是否可以在 Liqu
  • 单击按钮时增加 ASP.net 中的变量

    我是 ASP NET 新手 我正在使用 VB net 创建一个 ASP net 网站 所以这是我的问题 Dim myCounter as Integer 0 Protected Sub Button1 Click ByVal sender
  • 在退出脚本之前等待后台进程完成

    在退出脚本 TCL Bash 之前 如何确保所有后台进程已完成执行 我正在考虑将所有后台进程 pid 写入 pid 文件 然后最后 pgrep pidfile 以查看在退出之前是否有任何进程仍在运行 有一些更简单的方法可以做到这一点吗 TC
  • PowerShell 参数 - “术语‘param’未被识别为 cmdlet 的名称”

    考虑 notepad Starts Notepad Get Process notepad Finds the processes named notepad param Parameter Mandatory true string Pr
  • 为什么在使用 Javascript 变量之前不需要先声明它?

    在 Javascript 中我们不需要声明变量var使用关键字之前 我们可以立即做类似的事情myCount 12 or myStr Hello 其中 myCount myStr 之前未声明 任何此类用法都会在 全局 范围内声明并初始化变量
  • Prolog - 如何从输入文件的给定列表中创建变量列表?

    我有一个输入谓词将文件作为列表读取 输入 文件名 列表 该列表的格式将是 9 字面意思就是下划线字符 在这里 不是一个通配符 问题是我如何编写谓词 pred List List2 然后转换所有 进入变量但保留9还在同一个位置吗 所以如果我输
  • 在 C# 中,为什么我在声明 int 变量时看到它存储了一个零,但仍然收到错误消息说我应该初始化它?

    在 C 中 如果我这样做 int x 然后按 F10 我看到 x 中存储了一个零 但是当我尝试使用 x 时 它告诉我应该初始化它 这是为什么 那里应该有一个零 对吧 对于数组也是如此 所以 int a new int 5 如果我们按 F10
  • 编译错误:尝试在函数调用中指定参数类型时出现“预期在 ' ' 之前出现主表达式”

    当我编译我的程序时 我收到以下错误消息 stringPerm cpp In function int main stringPerm cpp 12 error expected primary expression before word
  • 定时器时间不作为变量改变?

    这是我的代码 private int V Time 1 try final Timer V Timer final Handler V Handler V Timer new Timer V Handler new Handler Loop
  • SQL 查询结果为字符串(或变量)

    是否可以将SQL查询结果输出到一个字符串或变量中 我的php和mysql不好 假设我有数据库 agents 其中包含列 agent id agent fname agent lname agent dept 使用此查询 sql SELECT
  • 在 Visual C# 中的 TextBox/Label 中显示 int 变量 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在创建我的第一个 C 项目 但我找不到在文本框或标签中显示整数变量的方法 我使用的是 Visual C 和 Visual Studio

随机推荐