零基础入门TCL语言(六)

目录

1  Tcl双引号引用

2  Tcl花括号引用

3  Tcl反斜线-换行序列


除了反斜线,Tcl还提供了两种方法,使得解释器把空白符和置换符等特殊字符作为普通字符处理。就是双引号"  "和花括号{ }

1  Tcl双引号引用

如果一个单词的第一个字符是 则这个单词由另一个 结束。换句话说,这两个双引号之间相当于一个单元。注意这个时候双引号不属于该单词的一部分。

#Tcl解释器将取消双引号中空白符、换行(注意不是换行符)、分号的特殊含义。
puts "Hello Tcl" 
#输出结果是,Hello Tcl 对空格作为普通处理。
set Price "Eggs: \$2.5/dozen
Coke: \$0.5/bottle"
puts $Price
#输出结果如下:对换行作为普通处理。
Eggs: $2.5/dozen
Coke: $0.5/bottle

#但是对于换行符、$、[]仍以特殊符号对待。
set price "Eggs: \$2.5/dozen\nCoke: \$0.5/bottle"
puts $price
#输出结果如下:对\n仍特殊对待。
Eggs: $2.5/dozen
Coke: $0.5/bottle

set y 2
set a "y is $y; the square of y is [expr $y*$y]"
puts $a
#输出结果为:对空白符和分号作为普通处理,对[]和$仍特殊对待。
y is 2; the square of y is 4

2  Tcl花括号引用

如果一个单词的第一个字符是 { 则这个单词由与之匹配的 } 结束。换句话说,这两个花括号之间相当于一个单元。注意这个时候花括号不属于该单词的一部分。

#取消所有特殊字符的特殊意义。
set Price {Eggs: \$2.5/dozen
Coke: \$0.5/bottle}
puts $Price
#输出结果是:
Eggs: \$2.5/dozen
Coke: \$0.5/bottle
set price {Eggs: \$2.5/dozen\nCoke: \$0.5/bottle}
puts $price
#输出结果是:\n被作为普通字符处理。
Eggs: \$2.5/dozen\nCoke: \$0.5/bottle

3  Tcl反斜线-换行序列

  • 花括号中的空格相当于普通字符。而没有花括号时,则是单词间隔符。这一点可以从输出结果可以看出

 

  • 反斜线+换行+第二行前面的空白=一个空格字符。换句话说,起到了续行的作用,相当于一条命令。
  • 反斜线+空格+换行=空格字符+换行。则起不到续行的效果,因此没有花括号时相当于两条命令,会报错;有花括号时,按照普通字符处理。
#反斜线+换行+第二行前面的空白=一个空格符,这样两行就组成了一条命令相当于set c 200
set a    \
      200 
puts "The value of a is:$a"
#输出结果为:这里200前面没有空格
The value of a is:200

#反斜线+空格+换行=空格符+换行,这样会报错,相当于两条命令
set b  \  
200 
puts "The value of b is:$b"

#如果我们将其用大括号括起来,反斜线+换行+第二行前面的空白=一个空格符
#这也是唯一能在大括号里面执行的替换操作,我们称为反斜线-换行序列。
set c {    \
       200 }
puts "The value of c is:$c"
#输出结果为:(花括号到反斜线之间的空格符和200)替换了($c)
The value of c is:     200 
#如果反斜线+空格+换行符=空格符+换行符
set d {    \     
100 }
puts "The value of d is:$d"
#输出结果为:
The value of d is:    \     
100 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值