Question

Que devrait faire cet exemple de code?

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

Il revient {A {[} \] D}, cependant je veux avoir {A [ ] D}.

Qu'est-ce que je fais mal?

Était-ce utile?

La solution

Votre code fait exactement ce que vous voulez, vous lisez simplement le représentant de la chaîne de votre sortie et le mal compréhension:

% 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

Lorsque vous lisez le représentant de la chaîne, vous le voyez échapper au [et]. Comme vous pouvez le voir sur la sortie Foreach, les valeurs réelles sont ce que vous demandez. Vous pouvez utiliser join Pour obtenir la chaîne qui vous intéresse si ce que vous voulez, c'est juste une chaîne avec les caractères en question.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top