Kurz: > Achtung: Beim if muss die öffnende geschweifte Klammer in derselben Zeile stehen wie die Bedingung: if {$x} { — eine neue Zeile vor { ist ein Syntaxfehler.
Teil des Kurses Tcl
Die wichtigsten Befehle
| Befehl | Zweck |
|---|---|
set, unset, incr, append | Variablen |
puts, gets, read, open, close | Ein- und Ausgabe |
if, for, while, foreach, switch | Kontrollfluss |
proc, return, upvar, global | Prozeduren |
list, lindex, lappend, lsort, lmap | Listen |
dict | Dictionaries |
string, format, scan, regexp, regsub | Text |
expr | Rechnen |
catch, try, error | Fehler |
namespace, oo::class | Struktur |
after, vwait, clock | Zeit und Ereignisse |
puts [info commands pu*]
puts [string length [info patchlevel]]
puts [expr {[llength [info commands]] > 100}]
puts [lsort [list banane Apfel kirsche]]
puts [lsort -nocase [list banane Apfel kirsche]]
puts [join [lmap w {a b c} {string toupper $w}] ""]
puts [expr {0.1 + 0.2}]
puts [expr {1.0 * 3}]
puts [expr {entier(2.9)}]Ausgabe:
puts
6
0
Apfel banane kirsche
Apfel banane kirsche
ABC
0.30000000000000004
3.0
2Typische Fehler
puts $nicht_definiertFehlermeldung:
can't read "nicht_definiert": no such variableunbekannter_befehl 1 2Fehlermeldung:
invalid command name "unbekannter_befehl"Achtung
Beim
ifmuss die öffnende geschweifte Klammer in derselben Zeile stehen wie die Bedingung:if {$x} {— eine neue Zeile vor{ist ein Syntaxfehler.
Weiterführende Quellen
- tcl-lang.org/man: Handbuch zu allen Befehlen
- „Practical Programming in Tcl and Tk“ (Welch, Jones)
- wiki.tcl-lang.org: das Tcl’ers Wiki
- tcl.tk/man/tcl8.6: Befehlsreferenz
Merke
- Tcl: wenige Regeln, überall gleiche Syntax, Strings als einziger Datentyp
- Stark in Automatisierung, Tests und Einbettung
- Beim Rechnen immer
expr {...}mit Klammern
Übungsaufgabe
Schreibe ein Skript, das alle Zeilen einer Textdatei mit dem Wort “Fehler” ausgibt.
Quiz zur Selbstkontrolle
Wie viele Datentypen kennt Tcl im Kern?
- Praktisch einen: Strings (richtig)
- Fünf
- Zwanzig
- Keinen
Warum expr mit geschweiften Klammern?
- Schneller und sicherer (keine doppelte Substitution) (richtig)
- Nur Optik
- Notwendig für Zahlen
- Pflicht in Tk
Was liefert llength {a {b c} d}?
- 3 (richtig)
- 4
- 2
- 1
Weiter im Kurs
Zurück: Fortgeschritten: Coroutinen, Traces und Sicherheit
Alle Kapitel: Tcl im Überblick