TCL语言的执行顺序是:先分组,再替换,最后执行

花括号中不准替换
双引号和花括号的作用都是分组,但是不同之处在于是否支持替换
语句的运行分3步走:
1、首先分组
2、其次替换
3、最后运行

$的作用是变量引导符,在字符串中如果要替换某个变量,可能还需要用{}来界定变量的起始和终点
分组有三种方法:空格,双引号和花括号
另外转义符\在这里的作用是提升或者消除字符的能力
一、什么是TCL
Tcl 全称是 Tool command Language。它是一个基于字符串的命令语言,基础结构和语法非常简单,易于学习和掌握。

Tcl 语言是一个解释性语言,所谓解释性是指不象其他高级语言需要通过编译和联结,它象其他 shell 语言一样,直接对每条语句顺次解释执行。

Tcl 数据类型简单。对 Tcl 来说,它要处理的数据只有一种——字符串。Tcl 将变量值以字符串的形式进行存储,不关心它的实际使用类型。

二、TCL的基本语法
1.输出:tcl使用”puts"关键字来作为输出语句

[语法] : puts ?-nonewline? ?channelId? string

Tcl 的输出命令是“puts”,将字符串输出到标准输出 channelId。语法中两个问号之间的参数为可选参数。

puts hello
结果=> hello puts –nonewline  "hello hello"
结果=>hello hello

但如果输出一段有空格的文本,则要用双引号或者花括号括起来

-nonewline 选项告诉 puts 不输出回车换行。

注意:双引号和花括号的作用是将多个词组织成一个变元,但他们是有差别的!这种差别就是在处理“替换操作”时,前者允许替换发生,而后者则可能会阻止替换。关于两者用法与差别以后会陆续讲到。在这里两者作用相同。

2.赋值: tcl 使用“set”关键字来定义参数,不必指定变量值的类型,因为变量值的类型仅一种——字符串。为变量赋值时,会为变量开辟一段内存空间来存储变量值。

[语法] set varName [value]

set a Hello        ;#定义变量 a 并赋值
=>Hello
puts $a          ;#输出变量值
=>Hello
set a  “Hello world”  ;#重新赋值
=>Hello world
set a   “Hello world”
=> Test Tcl     ;#输出变量值,此时不加”$” puts $a
=>Hello world     ;#输出变量值,此时要加”$” puts a
=> a     ;#输出字符”a” set b $a
=>Hello world puts $b
=>Hello world         ;#将 a 的值赋给 b

3.替换

(1)$

“$”符实现引用替换,用以引用参数值。上面也用到过

Tcl 对替换只进行一遍解释,对嵌套的”$”不于理睬。

set foo  oo
=>oo
set dollar foo
=>foo
set x $$dollar
=>$foo           ;#只解释一次,将“$dollar”用 dollar 的值(foo)代替, ;#命令等效为 set x {$foo},大括阻止替换。
set x {$foo}
=>$foo
set y $x
=>$foo           ; #一轮替换

(2) :[]

方括号“[]”完成命令替换。用“[]”将一条命令括起来,命令执行完成后,返回结果。

set b [set a   5]                  ;#set a 5 命令输出的结果赋给 b
=>5 puts $b
=>5 set c [expr 5 * 10]                 ;#将乘式结果赋给 c
=>50

(3): " " 和{}

双引号和花括号将多个单词组织成一个参数,也是一种替换操作。””和{}内的替换如何进行

呢?一般的原则是在" "内的替换正常进行,而在{}内的替换有可能会被阻止。

set a 123
=>123 puts "$a"         #会替换
=>123puts {$a}          #不会替换
=>$a

三、总结
TCL语言的执行顺序是:先分组,再替换,最后执行

花括号中不准替换
双引号和花括号的作用都是分组,但是不同之处在于是否支持替换
语句的运行分3步走:
1、首先分组
2、其次替换
3、最后运行

$的作用是变量引导符,在字符串中如果要替换某个变量,可能还需要用{}来界定变量的起始和终点
分组有三种方法:空格,双引号和花括号
另外转义符\在这里的作用是提升或者消除字符的能力

TCL语言中的执行顺序相关推荐

  1. Unity脚本在层级面板中的执行顺序测试3

    断断续续的写了3篇,以后有时间可以做成一个系列了 前面2篇测试了GameObject的顺序,以及Awake和OnEnable的时机: Unity脚本在层级面板中的执行顺序测试1 http://www. ...

  2. 日志打印、main函数中代码执行顺序

    文章目录 1.设置时区 2.日志打印 3.main函数中代码执行顺序 1.设置时区 我们要设置成 CST 时区,以保证正确地显示日期.时间. 我们常看到的时区有如下几个: PST:美国太平洋标准时间, ...

  3. 【总结篇】继承中的执行顺序

    作者:✿✿ xxxflower. ✿✿ <总结篇> 这个专题就记录一些自己在练习中所学习到的. 包括一些不熟悉的芝士点和一些小的细节. 今天我们来总结一下继承中的执行顺序. 首先执行静态的 ...

  4. 【分析】浅谈C#中Control的Invoke与BeginInvoke在主副线程中的执行顺序和区别(SamWang)

    今天无意中看到有关Invoke和BeginInvoke的一些资料,不太清楚它们之间的区别.所以花了点时间研究了下. 据msdn中介绍,它们最大的区别就是BeginInvoke属于异步执行的. Cont ...

  5. 关于C语言中表达式运算顺序(优先级、结合性、副作用、序列点)的讨论以及c语言未定义行为

    什么是优先级 到底什么是c语言的优先级? 我以前看了国内的很多教程,对于优先级的描述大多都是这样说的"优先级是用来决定当多个运算符出现在同一个表达式中时,先执行哪个运算符".其实这 ...

  6. java中程序执行顺序

    ①在java中执行顺序 一 静态初始化块 二 非静态初始化块 三 构造器 四 父类构造器 ② java中的赋值顺序 一 静态初始化块直接赋值 二 非静态初始化块直接赋值 三 父类继承的属性已赋值 四 ...

  7. 递归过程中语句执行顺序

    递归的两种模式 模式一 //递归的过程中在"递"的过程中解决问题 function function_name(Max_argument){if(end_condition){en ...

  8. SqlServer中sql执行顺序

    sql查询语句的处理步骤,代码清单 --查询组合字段 (5)select (5-2) distinct(5-3) top(<top_specification>)(5-1)<sele ...

  9. SQL语句中的执行顺序

    这也是一篇不完全的翻译,有兴趣的读者可以查看原文. 下面的SQL语句的执行顺序只是逻辑上的顺序,在实际中优化器会选择最省时省力的顺序: FROM:这个只需要说一点的是JOIN这一步包含在FROM里面, ...

  10. Java中继承执行顺序

    目录 继承执行顺序 类中的资源分类: 在子类中创建main方法 在无关类中创建main方法 拓展 代码块 权限修饰符 继承执行顺序 类中的资源分类: 静态成员变量, 静态代码块, 静态方法, 非静态成 ...

最新文章

  1. 第三方网站实现绑定微信登陆
  2. 横向ListView(四) —— 添加滚动条
  3. 码神日志N0.1|专场邀请:深度解析音视频技术(内有福利哦~)
  4. 函数--函数的快速体验
  5. linux ubuntu安装 mono,在 Ubuntu Server 上安装配置 Mono 生产环境
  6. perl数组硬引用_Perl 继续前行,Perl 7 将是下一代(硬核老王点评版)
  7. Html5 Canvas 百行代码实现扫雷
  8. 【微信篇】取证遇到微信昵称、微信号、微信账号、微信ID一次性区分清楚
  9. 生信识图之 点图进阶-3(MA)
  10. 成功解决failed: The TLS connection was non-properly terminated
  11. ZEALER王自如品味逼格感悟
  12. Mysql与Postgresql常用命令比较
  13. [转] Android开发环境的搭建 Android虚拟机搭建 安卓开发环境搭建
  14. Excel 2003 VBA编程参考
  15. python+django+vue+Elementui人力资源管理系统
  16. 【读书笔记】c和指针
  17. python 拉普拉斯锐化_(二十四)用二阶微分(拉普拉斯算子)实现图像锐化
  18. 江西理工大学理学院计算机,2016年江西理工大学理学院计算机科学与技术(加试)之C程序设计复试笔试最后押题五套卷...
  19. 【tio-core】1、tio-study是学习t-io的第一步
  20. 关系数据库和非关系数据库

热门文章

  1. 手机上最好用的五笔输入法_【收藏】如果在电脑和手机上使用日语输入法
  2. HTML5系列代码:信纸效果
  3. java 毫秒转分钟和秒_Java程序将毫秒转换为分钟和秒
  4. 骑士人才系统(qscms)微信公众号配置教程
  5. 如何免费下载百度文库的文档!!!!!!!
  6. Ruby之父松本行弘:编程是可以干一辈子的
  7. 在线解方程的计算机,解方程计算器在线使用 方程计算器如何在线使用
  8. Excel 列累加技巧
  9. Win11 蓝牙功能消失
  10. 关闭华硕笔记本触摸屏