命令置换

上期内容:变量置换

命令置换是Tcl的第二种置换形式。该置换以方括号[]形式体现。方括号中是另外一个Tcl命令。从这个角度而言,这实际上就是命令的嵌套。命令置换会导致某一个命令的所有或部分单词被另一个命令的结果所代替。如下图所示。命令expr会在解析set的单词时执行,expr的结果即字符串16成为命令set的第二个参数。

同时,命令置换时方括号中的脚本可以包含任意多条命令,命令之间用换行符或分号隔开。但是,方括号最终的返回值为方括号中最后一条命令的返回值。如下图所示,[]中有两个命令expr和set,通过分号隔开,最终y的值为最后一条命令set x的返回值。从代码风格的角度而言,并不建议在方括号中通过换行符或分号分割多条命令。

另外,命令置换是可以嵌套的,即在一个命令置换中还可以包含另一个命令置换。如下图所示。命令set中嵌套了命令expr,而expr中又嵌套了string length(该命令返回字符串的长度)。因此,在解析set的单词时,会首先解析expr,而解析expr时又会解析并执行string length。

结论:

-命令置换以方括号[]形式为标记

-命令置换可以嵌套

如果文章对你有收获,欢迎转发~

本文分享自微信公众号 - Lauren的FPGA(Lauren_FPGA),作者:Lauren Gao

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学习笔记:人工智能、机器学习和深度学习什么关系

    提到人工智能,很多工程师就会想到机器学习、神经网络或者深度学习。这几个概念有一定的区别,也有一定的关系。

    Lauren的FPGA
  • 深入理解Tcl中的置换

    Tcl语言中有三类置换:变量置换(点击这里复习:变量置换)、命令置换(点击这里复习:命令置换)和反斜杠置换(点击这里复习:反斜杠置换)。可以说“置换”是Tcl的...

    Lauren的FPGA
  • 用Tcl实现Vivado设计全流程(1)

    Vivado有两种工作模式:project模式和non-project模式。这两种模式都可以借助VivadoIDE或Tcl命令来运行。相比之下,VivadoID...

    Lauren的FPGA
  • C#数据并行和任务并行

          Paraller.For()方法类似于C#的for循环语句,也是多次执行一个任务。使用Paraller.For()方法,可以并行运行迭代,迭代的顺序...

    yaphetsfang
  • 数据可视化|用雷达图进行对比分析

    雷达图的背景一圈一圈地像雷达,用多边形来展现数据的大小,我认为比较适合用于有多种不同维度的情形,是发现差距的一种好工具。

    朱小五
  • C#集合

    拾点阳光
  • Python-Dict&Set类型

    'Adam' ==> 95 'Lisa' ==> 85 'Bart' ==> 59

    py3study
  • Windows系统组件漏洞

    组件一般都是系统自带都有的, 如:WINXP或WIN2000它本身,就带有非常强大的组件功能。添加组件可以使系统的功能更加强大。 具体方式:

    宸寰客
  • Python|函数list和set

    最近看到一个比较有意思的代码如下,可以看到当我们使用花括号对a里的每个值进行加一时,输出的却是花括号,当我们使用中括号时输出的就是中括号,这到底是什么呢?

    算法与编程之美
  • 「NewSQL技术」Greenplum 6中的OLTP负载性能提升60倍以上

    Greenplum 6包含了针对OLTP场景的多个优化,极大地提高了高并发情况下简单查询、插入、删除和更新操作的性能。这些改进包括:

    首席架构师智库

扫码关注云+社区

领取腾讯云代金券