Tcl l替换不能更换牙套?



这个代码示例应该做什么?

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

它返回{A {[} ] D},但是我想要{A [ ] D}

我做错了什么?

您的代码完全按照您的意愿执行,您只是在读取输出的字符串代表,并误解了它:

% 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来获取您感兴趣的字符串。

相关内容

  • 没有找到相关文章

最新更新