这个代码示例应该做什么?
set l { A B C D }
lreplace $l 1 2 \[ \]
它返回{A {[} \] D}
,但我想拥有{A [ ] D}
。
我究竟做错了什么?
这个代码示例应该做什么?
set l { A B C D }
lreplace $l 1 2 \[ \]
它返回{A {[} \] D}
,但我想拥有{A [ ] D}
。
我究竟做错了什么?
您的代码完全符合您的要求,您只是在阅读输出的字符串 rep 并误解了它:
% 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
当您阅读字符串 rep 时,您会看到它转义了 [ 和 ]。正如您从 foreach 输出中看到的那样,实际值就是您所要求的。如果您想要的只是一个带有相关字符的字符串,您可以使用它join
来获取您感兴趣的字符串。