zoukankan      html  css  js  c++  java
  • TCL语言笔记:TCL基础语法

    一、什么是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"         #会替换
    =>123
    
    puts {$a}          #不会替换
    =>$a

    三、总结

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

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

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

     

  • 相关阅读:
    IT从业人员关注哪些问题
    Java实现 LeetCode 350 两个数组的交集 II(二)
    Java实现 LeetCode 349 两个数组的交集
    Java实现 LeetCode 349 两个数组的交集
    Java实现 LeetCode 349 两个数组的交集
    Java实现 LeetCode 347 前 K 个高频元素
    Java实现 LeetCode 347 前 K 个高频元素
    Java实现 LeetCode 347 前 K 个高频元素
    Java实现 LeetCode 345 反转字符串中的元音字母
    Java实现 LeetCode 345 反转字符串中的元音字母
  • 原文地址:https://www.cnblogs.com/huguodong/p/5879489.html
Copyright © 2011-2022 走看看