0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如果期望$$a发生二次置换该如何操作呢?

FPGA技术驿站 来源:Lauren的FPGA 2020-09-08 16:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

看一个典型的例子,如下图所示。变量x被赋值为10,变量a被赋值为字符x。之后,给变量b赋值$$a。最终变量b的值将会是$x,而不是10。

为什么b的值是$x,而不是10呢?这是因为Tcl的变量置换遵循如下两条规则:

规则1:Tcl在解析一条命令时,只从左向右解析一次,进行一轮置换,每一个字符只会被扫描一次。

规则2:每一个字符只会发生一层置换,而不会对置换后的结果再进行一次扫描置换。

根据上述规则,Tcl从左向右对命令“set b$$a”进行解析,扫描所有的字符,发现$$a时,执行变量置换,得到$x,同时只发生一层置换,不会对置换后的结果$x再进行扫描置换(否则$$a中最左侧也就是第一个$将被扫描两次,与规则1冲突,)。因此,最左侧的$并不会触发变量置换,最终变量b的值将会是$x,而不是10。

那么如果期望$$a发生二次置换该如何操作呢?

方法1:采用[set var]的方式,如下图所示。代码第6行中括号中的set命令只跟随一个参数$var,$var发生变量置换,故set $var等效于set a,而set a将返回变量a的值。本质上,$var是[set var]的缩写版本。通过代码第10行和第12行可以看出,set后面如果只有一个参数,而这个参数又是一个已经定义的变量名,那么该命令就直接返回该变量的变量值,与$var等价。

方法2:采用命令subst实现此目的,如下图所示。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • TCL
    TCL
    +关注

    关注

    11

    文章

    1815

    浏览量

    91809
  • 变量
    +关注

    关注

    0

    文章

    616

    浏览量

    29568
  • 置换
    +关注

    关注

    0

    文章

    3

    浏览量

    2117

原文标题:Tcl之$$a 80%的概率......

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    AI预测如何赋能城市二次供水系统智能化

    在城市供水系统的末端,隐藏着一个被长期忽视的“盲盒”——二次供水泵房。
    的头像 发表于 04-02 09:05 618次阅读
    AI预测如何赋能城市<b class='flag-5'>二次</b>供水系统智能化

    解析ADM1041A:服务器电源供应的二次侧控制与管理利器

    解析ADM1041A:服务器电源供应的二次侧控制与管理利器 在服务器电源设计领域,我们不断追求着降低外部组件数量、消除手动校准或调整过程的解决方案。而ADM1041A这款二次侧控制与管
    的头像 发表于 03-30 16:25 103次阅读

    SGM41002:锂离子电池二次保护的理想选择

    SGM41002:锂离子电池二次保护的理想选择 在锂离子电池应用日益广泛的今天,电池的安全保护至关重要。SGMICRO推出的SGM41002电池保护IC,为2 - 4串锂离子电池组提供了可靠的二次
    的头像 发表于 03-23 09:35 196次阅读

    UV胶可以二次固化吗?

    程中,用户常常会遇到一个问题:UV胶是否可以进行“二次固化”?本文将从原理、适用条件及限制因素等方面,系统分析UV胶的二次固化可能性。一、什么是“二次固化”?所谓
    的头像 发表于 01-27 11:27 548次阅读
    UV胶可以<b class='flag-5'>二次</b>固化吗?

    讲透二次回流工艺的核心逻辑

    二次回流工艺是通过两分步高温焊接,解决复杂封装中多层级器件互连、敏感器件与大功率器件共存焊接难题的核心技术,核心逻辑为“高温打底、低温叠加”。其主要应用于PoP堆叠封装、SiP系统级封装、汽车电子
    的头像 发表于 12-25 11:37 1830次阅读
    一<b class='flag-5'>次</b>讲透<b class='flag-5'>二次</b>回流工艺的核心逻辑

    宇树人形机器人的配置,核心代码,调试方法,二次开发接口

    宇树人形机器人的配置,核心代码,调试方法,二次开发接口
    的头像 发表于 12-10 09:05 5553次阅读

    基于工业数采网关的二次供水泵站物联网解决方案

    及水质安全隐患等问题仍时有发生,给居民生活带来诸多不便。 随着智慧水务的数字化转型,二次供水泵房的管理与维护模式亟需升级。如何借助高效可靠技术实现设备集中监控、故障预警,提升管理效率并降低维护成本,成为水务企
    的头像 发表于 11-27 16:52 676次阅读
    基于工业数采网关的<b class='flag-5'>二次</b>供水泵站物联网解决方案

    凯米斯科技二次供水方案,筑牢城市饮水安全防线

    当城市供水的“最后一公里”水质安全成为居民日常饮水的隐忧,凯米斯科技以物联网技术为锚点的供水水质监测管理系统,正为城市二次供水筑起一道智慧化的安全屏障。城市二次供水作为保障居民饮水安全的“最后一公里
    的头像 发表于 11-20 17:08 1250次阅读
    凯米斯科技<b class='flag-5'>二次</b>供水方案,筑牢城市饮水安全防线

    将蜂鸟E203的内核移植到fpga之后怎么进行二次开发

    你们好!请问一下我将蜂鸟E203的内核移植到fpga之后怎么进行二次开发?比如我想点亮板子上的led?驱动摄像头进行图像识别?这些如何进行
    发表于 11-10 07:09

    电网运行中二次过电压保护器的安装核心指导原则

    二次过电压保护器的安装核心原则是确保其有效抑制操作过电压、雷电感应等对二次回路的冲击。关键要点包括:就近安装,缩短导线以降低阻抗;并联接入被保护设备,并确保接地可靠(电阻≤4Ω);参数匹配,电压等级
    的头像 发表于 08-14 16:01 1188次阅读
    电网运行中<b class='flag-5'>二次</b>过电压保护器的安装核心指导原则

    二次元玩具 “开口说话”!N9400 芯片为你的周边注入灵魂

    还在为二次元周边玩具缺乏互动感发愁?想让手办、盲盒、扭蛋自带角色原声却被成本卡住?广州九芯电子——深耕电子芯片15年的源头工厂,带着爆款语音播放芯片N9400来了!专为二次元玩具厂家量身定制,用硬核
    的头像 发表于 08-13 14:03 882次阅读
    让<b class='flag-5'>二次</b>元玩具 “开口说话”!N9400 芯片为你的周边注入灵魂

    CT二次侧过电压保护机制及实现方式

    电流互感器(CT)二次侧过电压保护机制的核心是防止二次侧开路或异常工况下产生危险高压,确保设备安全和人员防护。CT二次侧过电压保护需结合 瞬态抑制器件(MOV/TVS)、主动保护装置(开路保护器
    的头像 发表于 08-01 10:27 2510次阅读
    CT<b class='flag-5'>二次</b>侧过电压保护机制及实现方式

    汉思新材料:底部填充胶二次回炉的注意事项

    底部填充胶(Underfill)是一种在电子组装中用于增强焊点可靠性的工艺,特别是在倒装芯片封装中。针对底部填充胶(Underfill)进行二次回炉(通常发生在返修、更换元件或后道工序需要焊接
    的头像 发表于 07-11 10:58 1464次阅读
    汉思新材料:底部填充胶<b class='flag-5'>二次</b>回炉的注意事项

    云MES系统源码,支持 SaaS 多租户,支持二次开发

    万界星空科技MES生产制造执行系统源码,有演示,多个项目应用案例,成熟稳定。支持二次开发,商业授权后可商用。
    的头像 发表于 05-07 11:14 936次阅读
    云MES系统源码,支持 SaaS 多租户,支持<b class='flag-5'>二次</b>开发

    消谐装置与二次消谐装置区别、一消谐器与二次消谐器的区别

    消谐器与二次消谐器是电力系统中用于抑制谐振过电压的不同装置,主要区别如下: 安装位置:一消谐器串联于电压互感器(PT)一侧中性点与地之间,直接承受高电压;
    的头像 发表于 05-07 09:58 4903次阅读
    一<b class='flag-5'>次</b>消谐装置与<b class='flag-5'>二次</b>消谐装置区别、一<b class='flag-5'>次</b>消谐器与<b class='flag-5'>二次</b>消谐器的区别