Wie listet man Werte in mehreren Zeilen ohne Backslash am Ende jeder Zeile auf?
Man kann keine Liste in mehreren Zeilen erstellen, ohne am Ende einen Backslash zu haben.
Zum Beispiel der folgende ( falsche ) Code:
gibt einen Fehler:
%Vor%Es kann behoben werden, indem ein Backslash am Ende der Zeile angehängt wird:
%Vor%Was hässlich und fehleranfällig ist.
Bitte beachten Sie:
{
& amp; }
) bewusst, aber es erlaubt keine Ausführung von Befehlen und hält auch überflüssige Leerzeichen. dict create
), nicht nur list
wie in meinem Beispiel. Verwenden von Tcl 8.5
Tcl verwendet Newline (und Semikolon) als Befehlstrennzeichen. Dies ist ein Kernteil der grundlegenden Syntax; Sie können nicht umgehen, so dass Sie müssen entweder Anführungszeichen oder geschweifte Klammern verwenden, um Backslash-itis zu vermeiden. Sehen wir uns die Möglichkeiten an (denken Sie daran, dass Listenseparatoren jede nicht leere Whitespace-Sequenz sein können).
list
mit Backslashes (Beachten Sie, dass in% $elephant
nur eine Folge von Zeichen ist, nicht eine gelesene Variable.)
Mit "sei vorsichtig!" Ich meine, dass, wo Sie ein Mehrwort-Mitglied der Liste haben, Sie eine innere [list …]
oder andere Zitate benötigen:
Aber das wäre wahr mit den list
+ Backslashes an der Spitze.
subst
... Ich könnte das "aufräumen" (und andere mögliche Probleme vermeiden) mit:
%Vor%Aber ehrlich gesagt, wenn die Dinge wirklich komplex werden, tue ich das tatsächlich:
Es hat keinen Sinn, sich über den Kopf zu schlagen, um einen Befehl zu verwenden, wenn zwei oder mehr alles mit weniger Problemen erledigen.
Hier ist ein Proc namens lines
, der vielleicht das macht, wonach du suchst -
Hier ist eine Demonstration seiner Verwendung -
%Vor%Es wird wie gewünscht ausgegeben
%Vor%Ein Ideone ist hier , wenn Sie mit einer Gabel spielen möchten.
Tags und Links tcl