Tcl 要为join命令提供哪些元素?

Tcl 要为join命令提供哪些元素?,tcl,Tcl,我对“join”命令感到困惑,以下是我在tclsh中的代码: % lappend aaa 1 1 % lappend aaa 2 1 2 % lappend aaa {3 4} 1 2 {3 4} % join $aaa 1 2 3 4 因此,列表aaa应该有3个元素:1、2和{34}。因为“join”命令应该将所有元素连接在一起形成一个字符串,所以返回值应该是“1 2{3 4}”,因为列表只有3个元素。为什么join命令会破坏第三个元素?它不会。第三个元素是字符串34——您看到的大括号实际上

我对“join”命令感到困惑,以下是我在tclsh中的代码:

% lappend aaa 1
1
% lappend aaa 2
1 2
% lappend aaa {3 4}
1 2 {3 4}
% join $aaa
1 2 3 4

因此,列表aaa应该有3个元素:1、2和{34}。因为“join”命令应该将所有元素连接在一起形成一个字符串,所以返回值应该是“1 2{3 4}”,因为列表只有3个元素。为什么join命令会破坏第三个元素?

它不会。第三个元素是字符串
34
——您看到的大括号实际上不是字符串的一部分。您使用的是一个空格,因此字符串中的空格在视觉上没有什么不同。例如:

% lappend aaa 1
1
% lappend aaa 2
1 2
% lappend aaa {3 4}
1 2 {3 4}
% lappend aaa 5
1 2 {3 4} 5
% join $aaa :
1:2:3 4:5