Frage

Was soll dieses Codebeispiel tun?

set l { A B C D }
lreplace $l 1 2 \[ \]

Es wird {A {[} \] D} zurückgegeben, ich möchte jedoch {A [ ] D} haben.

Was mache ich falsch?

War es hilfreich?

Lösung

Ihr Code macht genau das, was Sie wollen. Sie lesen nur die Zeichenfolgenwiederholung Ihrer Ausgabe und verstehen sie falsch:

% set l { A B C D }
 A B C D 
% foreach elem $l { puts $elem }
A
B
C
D
% set j [lreplace $l 1 2 \[ \]]
A {[} \] D
% foreach elem $j { puts $elem }
A
[
]
D
% join $j
A [ ] D

Wenn Sie die Zeichenfolgenwiederholung lesen, sehen Sie, dass sie dem [und] entgeht.Wie Sie der foreach-Ausgabe entnehmen können, sind die tatsächlichen Werte genau das, wonach Sie fragen.Sie können join verwenden, um die Zeichenfolge abzurufen, an der Sie interessiert sind, wenn Sie nur eine Zeichenfolge mit den betreffenden Zeichen möchten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top