首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何得到我想要的输出?

如何得到我想要的输出?
EN

Stack Overflow用户
提问于 2019-04-14 04:34:22
回答 3查看 52关注 0票数 2

有人能指出我的tcl脚本有什么问题吗.我是新来的tcl,并试图找出如何获得我想要的输出。

我想要"for循环“打印出descLvds1descLvds2 . descLvds8的内容,即"LVDS1回环”,"LVDS2回环“."LVDS8回环“但我无法得到我想要的输出.这是代码的一部分,问题在$descLvds$i,任何帮助都是非常感谢的.

代码语言:javascript
复制
set descLvds1 "LVDS 1 loopback"
set descLvds2 "LVDS 2 loopback"
...
set descLvds8 "LVDS 8 loopback"

for {set i 1} {$i < 9 } {incr i} {
    puts "Chan$i $descLvds$i"
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-14 04:59:41

您可以使用set来设置变量的值和获取变量的值。若要从其他变量中获取具有名称的变量的值,可以使用变量替换(例如:$i)创建变量名,然后使用set获取该变量的值。

示例:

代码语言:javascript
复制
for {set i 1} {$i < 9 } {incr i} {
    set varname "descLvds$i"
    puts "Chan$i [set $varname]"
}

如果需要,可以将这两行合并为一个:

代码语言:javascript
复制
for {set i 1} {$i < 9 } {incr i} {
    puts "Chan$i [set descLvds$i]"
}
票数 1
EN

Stack Overflow用户

发布于 2019-04-14 06:41:21

理想情况下,可以将这些变量命名为稍微不同的变量,这样就可以使用关联数组元素。可以让你这么做:

代码语言:javascript
复制
set descLvds(1) "LVDS 1 loopback"
set descLvds(2) "LVDS 2 loopback"
...
set descLvds(8) "LVDS 8 loopback"

for {set i 1} {$i < 9 } {incr i} {
    puts "Chan$i $descLvds($i)"
}

那确实有用。

票数 1
EN

Stack Overflow用户

发布于 2019-04-15 08:30:00

这可能是因为为您的问题创建了一个简短的示例,但是如果输入元素遵循词法顺序(descLvds1descLvds2、.),那么可以使用lappendforeach循环将其追加到列表中:

代码语言:javascript
复制
lappend descLvds "LVDS 1 loopback"
lappend descLvds "LVDS 2 loopback"
# ...
lappend descLvds "LVDS 8 loopback"

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

https://stackoverflow.com/questions/55672000

复制
相关文章

相似问题

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