该代码示例应该做什么?
set l { A B C D }
lreplace $l 1 2 \[ \]
返回{A {[} \] D}
,但我希望{A [ ] D}
。
我做错了什么?
答案 0 :(得分:4)
您的代码完全符合您的要求,您只需阅读输出的字符串代码并误解它:
% 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
当你读取字符串代表时,你会看到它逃脱[和]。从foreach输出中可以看出,实际值是您所要求的。如果您想要的只是一个包含相关字符的字符串,您可以使用join
来获取您感兴趣的字符串。