0
該代碼示例應該做什麼?Tcl lreplace不能替換大括號?
set l { A B C D }
lreplace $l 1 2 \[ \]
它返回{A {[} \] D}
,但是我想有{A [ ] D}
。
我在做什麼錯?
該代碼示例應該做什麼?Tcl lreplace不能替換大括號?
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
當你讀的字符串代表,你看到它逃脫[和]。正如你從foreach輸出中看到的那樣,實際值就是你所要求的。如果你想要的只是一個包含字符的字符串,你可以使用join
來獲取你感興趣的字符串。