前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >变量置换

变量置换

作者头像
Lauren的FPGA
发布2019-10-31 00:23:55
8740
发布2019-10-31 00:23:55
举报
文章被收录于专栏:Lauren的FPGA

上期内容:变量赋值

除了直接给变量赋值之外,另一种常见情形是把某个变量的值赋给另外一个变量。例如,变量x的值为1,我们期望变量y的值是x+2也就是3。采用如下代码,最终发现y的结果是x+2,并不是期望值3。这里就涉及到变量置换。

在Tcl中,变量置换通过$(美元符号)完成。看一个简单的例子。变量x值为3,如果需要把变量x的值赋给变量y,就需要通过$x来完成,如下图所示代码。

是不是所有的变量,只要通过符号$都可以完成变量置换呢?看一个简单的例子。变量名为a-b-c,变量值为字符串”Hello”,我们需要把变量mystr的值设置为变量a-b-c的值。但通过$置换时,显示变量a不存在。由此可见,Tcl把中划线当作了字符串分割符。此时,可通过{}把变量名a-b-c括起来,使Tcl解释器把它当作一个整体对待,就可以正确实现变量置换。

类似地,对于英文句号“.”,Tcl解释器也会当作字符串分割符,但对于下划线或者以数字开头的变量名则不会出现这样的问题。如果并不清楚Tcl解释器是否会把变量名作为整体对待,谨慎起见,用{}把变量名括起来。

借助变量置换,很容易完成字符串拼接,例如,变量a为5,变量b为6,给变量c赋值56,这可通过$a$b完成,如下图所示。

再例如,变量x为LUT,需要把变量lut_type设置为LUT6,也就是字符串LUT和字符6拼接在一起。如果直接使用$x6就会报错,Tcl解释器会把x6当作一个变量,但该变量并未事先定义,所以会显示该变量不存在。此时,需要通过花括号{}把变量x括起来,外加$符号完成变量置换。

本质上,$var是[set var]的缩写版本。通过如下例子可以看出,set后面如果只有一个参数,而这个参数又是一个已经定义的变量名,那么该命令就直接返回该变量的变量值,与$var等价。

结论:

-Tcl中通过美元符号$完成变量置换

-对于包含特殊符号的变量名,可通过${VarName}的方式保证正确置换

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Lauren的FPGA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档