Tcl
1
TclshellTcl
(field)TAB
TclTcl
(substitution)Tcl
C/C++
TclTclC/C++,
Tcl_CreateCommand
Tcl' 'Tcl
set a 100
# Not a comment
2Substitution
set x 10
set y 100 + x
y100 + x110Tcl
x 100 + xx '10'
Tclx 'x'Tcl
Tcl
Tcl
1variable substitution
set x 10
set y 100 + $x
y11010+100Tcl10+100
y110Tcl10+100
2command substitution
[]Tcl
set x 10
set y [expr 100+$x]
y110Tcl'['expr
exprC/C++expr'10+110'
[]Tcl[]
3backslash subtitution)
TclC
[$Tcl
set msg multiple\ space
'\'Tcl
set '\''multiple space'
(word)
4
Tcl
({})
Tcl[]
Tcl
Tcl
Tclstring
,
1
Tcl
C\C++Tcl
:
set a 2
set a.1 5
set b $a.1
a.1bTcl$
('.')('a')
Tcla2,2.1b
set b ${a.1}
procedureset procedureprocedure
procedureglobal
append -
varNamevalue.varName,value.
varName..$a
,append a $b set a $a$b .
.
set var 0
for {set i 1} {$i<=10} {incr i} {
append var "," $i
}
puts $var
# Prints 0,1,2,3,4,5,6,7,8,9,10
2
TclTcl
Tcl
set day(monday) 1
set day(sunday) 2
3string
TCLTCL
format
format formatstring vlue value...
format ANSICsprintfformatstringvalue
forma-tstring
set msg [format "%s is %d years old" $name $age]
scan
scan string formatsting varName varName ...
scanformat ANSI Csscanfformatsting
stringvarName,TABstring
formatsting'%'
scan "some 26 34" "some %d %d" a b
regexp
regexp [switchs] [--] exp string [matchVar]\ [subMatchVar subMatchVar...]
regexpexpstring10
regexpswitchs -nocase-line--
switchs '-'
regexpmatchVarsubMatchVar
regexp
regexp { ([0-9]+) *([a-z]+)} " there is 100 apples" total num word
puts " $total ,$num,$word"
100 apples ,100,apples
regsub
regsub [switchs] exp string subSpec varname
regsubregexp
10regsubstring
linsert
linsert list index value [value...?]
valuelist index (0-based)
lappend
lappend varname value [value...?]
valuevarnamevarname
lreplace
lreplace list first last [value value ...]
<2>
gets readgets read
puts puts TCLseek,telleof
Tcl
1
Tcl 0x
TclANSI C
2
TclANSI C
Tcl
ANSI C
Tcl
TCLCifswitchforwhileforeachbreakcontinue
1
if { $x>0 } {
.....
}elseif { $x 1 } {
.....
}elseif { $x 2 } {
....
}else {
.....
}
'{' TCL if
Tcl
if {TCL'if{'
switch [option] $x {
ab {incr t1}
c {incr t2}
default {incr t3}
}
optionTCL-exact -globregexp,-glob-exact -globstring
match -regexp
a''default switch
switch
2
for init test reinit body
init test
reinit body
set b " "
for {set i [expr [llength $a] -1]} {$i>=0} {incr i -1} {
lappend b [lindex $a $i]
}
while a a b
set b " "
set i [expr [llength $a] -1]
while { $i>=0}{
lappend b [lindex $a $i]
incr i -1
}
foreach
Tcl
TCLTCL,TCLTCL
procTCLCTCL
proc
proc add {x y } {expr $x+$y}
proc
TCL proc
add 1 2 3
returnreturn
TCL
C
global
2
C\C++
TCLargs,
args
args
args