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

    文章

    1794

    浏览量

    91045
  • 变量
    +关注

    关注

    0

    文章

    615

    浏览量

    29365
  • 置换
    +关注

    关注

    0

    文章

    3

    浏览量

    2103

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

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

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

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

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

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

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

    浅谈蓝牙模块贴片加工中的二次回流焊接

    不均匀,导致产生焊接缺陷。 c.选择不当的焊接参数。如果焊接参数选取不当,例如温度过高、时间过长,都会对焊接质量产生负面影响。 3、如何降低二次回流焊的影响 为了确保焊接的质量,可以采取以下方法: a
    发表于 04-15 14:29

    DLP6500想调用API进行自主二次开发,怎么构建开发环境?

    请问一下,我购置了DLP6500型号产品,想利用产品进行开发,实现高速投影的功能。 但是我现在只找到了GUI界面,请问一下,如果我想调用API进行自主二次开发,怎么构建开发环境? 最好有相关的技术指导文件,谢谢。
    发表于 03-03 07:03

    大为锡膏:针对二次回流封装锡膏的创新解决方案

    前言随着封装技术的不断进步,对封装材料的要求确实越来越高。针对传统锡锑(SnSb)合金在二次回流问题上的不足,东莞市大为新材料技术有限公司推出的二次回流高可靠性焊锡膏是一个创新的解决方案。二次
    的头像 发表于 02-05 17:07 588次阅读
    大为锡膏:针对<b class='flag-5'>二次</b>回流封装锡膏的创新解决方案

    集成电路新建项目机电二次配设备安装与连接环节有哪些注意事项?

    设备安装与连接是集成电路新建项目机电二次配施工流程中的关键环节,以下是环节的一些注意事项:
    的头像 发表于 01-06 16:48 1214次阅读
    集成电路新建项目机电<b class='flag-5'>二次</b>配设备安装与连接环节有哪些注意事项?

    什么是集成电路新建项目机电二次配?

    集成电路新建项目机电二次配是在集成电路工厂建设过程中的一个重要环节,主要涉及到在一机电安装完成后,针对生产设备的具体需求进行的二次机电系统配置与调整。以下是其详细介绍:
    的头像 发表于 01-06 16:45 2501次阅读
    什么是集成电路新建项目机电<b class='flag-5'>二次</b>配?

    深居浅出AutoCAD二次开发

    深居浅出AutoCAD二次开发,net版
    发表于 01-06 14:12 12次下载

    安科瑞ACTB导轨式CT二次母线保护绕组电压保护器

    安科瑞 程瑜  187 0211 2087 ACTB导轨式CT二次母线保护绕组电压保护器 产品概述 电流互感器(简称 CT)在运行中二次回路绝不允许开路,一旦开路,或一绕组流过异常电流(如雷电
    的头像 发表于 12-18 15:17 747次阅读
    安科瑞ACTB导轨式CT<b class='flag-5'>二次</b>母线保护绕组电压保护器

    大为锡膏:针对二次回流封装锡膏的创新解决方案

    随着封装技术的不断进步,对封装材料的要求确实越来越高。针对传统锡锑(SnSb)合金在二次回流问题上的不足,东莞市大为新材料技术有限公司推出的二次回流高可靠性焊锡膏是一个创新的解决方案。
    的头像 发表于 12-14 08:55 890次阅读

    SOLIDWORKS二次开发应用范围与实例

    SOLIDWORKS二次开发为企业和设计师们提供了广阔的定制化空间,能够更好地满足复杂多变的设计需求,帮助工程师和设计师提高工作效率,实现更复杂的自动化任务。如您有SOLIDWORKS二次开发需求,欢迎咨询Solidkits
    的头像 发表于 12-13 16:33 1454次阅读