tcl
Tcl taalconstructies
Zoeken…
Syntaxis
- # Dit is een geldige opmerking
- # Dit is een geldige {reactie}
Opmerkingen plaatsen
Opmerkingen in Tcl kunnen het beste als een ander commando worden beschouwd.
Een opmerking bestaat uit een # gevolgd door een willekeurig aantal tekens tot de volgende nieuwe regel. Een opmerking kan overal verschijnen waar een opdracht kan worden geplaatst.
# this is a valid comment
proc hello { } {
# the next comment needs the ; before it to indicate a new command is
# being started.
puts "hello world" ; # this is valid
puts "dlrow olleh" # this is not a valid comment
# the comment below appears in the middle of a string.
# is is not valid.
set hw {
hello ; # this is not a valid comment
world
}
gets stdin inputfromuser
switch inputfromuser {
# this is not a valid comment.
# switch expects a word to be here.
go {
# this is valid. The switch on 'go' contains a list of commands
hello
}
stop {
exit
}
}
}
Accolades in opmerkingen
Vanwege de manier waarop de Tcl-taalparser werkt, moeten accolades in de code op elkaar worden afgestemd. Dit omvat de accolades in opmerkingen.
proc hw {} {
# this { code will fail
puts {hello world}
}
Een ontbrekende close-brace: mogelijk ongebalanceerde brace in commentaarfout wordt gegenereerd.
proc hw {} {
# this { comment } has matching braces.
puts {hello world}
}
Dit werkt als de beugels goed zijn gekoppeld.
citeren
In de Tcl-taal is in veel gevallen geen speciaal citaat nodig.
Dit zijn geldige tekenreeksen:
abc123
4.56e10
my^variable-for.my%use
De Tcl-taal splitst woorden op witruimte, dus alle letterlijke of tekenreeksen met witruimte moeten tussen aanhalingstekens worden geplaatst. Er zijn twee manieren om tekenreeksen te citeren. Met accolades en aanhalingstekens.
{hello world}
"hello world"
Bij het citeren met accolades worden geen vervangingen uitgevoerd. Ingesloten accolades kunnen worden ontsnapt met een backslash, maar houd er rekening mee dat de backslash deel uitmaakt van de string.
% puts {\{ \}}
\{ \}
% puts [string length {\{ \}}]
5
% puts {hello [world]}
hello [world]
% set alpha abc123
abc123
% puts {$alpha}
$alpha
Bij het citeren met dubbele aanhalingstekens worden opdracht, backslash en variabele substituties verwerkt.
% puts "hello [world]"
invalid command name "world"
% proc world {} { return my-world }
% puts "hello [world]"
hello my-world
% puts "hello\tworld"
hello world
% set alpha abc123
abc123
% puts "$alpha"
abc123
% puts "\{ \}"
{ }