'有什么用|';在TCL加入运营?

'有什么用|';在TCL加入运营?,tcl,Tcl,我有以下代码片段: proc splitstr {text exprs} { if {$text eq {}} { return $text } set exprs [join $exprs |] } 这个“|”在联接操作中起什么作用? 如果我从操作中删除它会怎么样?这是某种安全检查吗?命令的第三个参数join是joinString。join命令在每个列表元素之间插入joinString。从: 此命令返回通过连接所有元素而形成的字符串 列表和分隔每对相邻

我有以下代码片段:

proc splitstr {text exprs} {
    if {$text eq {}} {
        return $text
    }
    set exprs [join $exprs |]
}
这个“|”在联接操作中起什么作用?
如果我从操作中删除它会怎么样?这是某种安全检查吗?

命令的第三个参数
join
是joinString。
join
命令在每个列表元素之间插入joinString。从:

此命令返回通过连接所有元素而形成的字符串 列表和分隔每对相邻 元素


注意,
|
在Tcl中没有特殊的解释;它只是一个单字符长的字符串。

我不明白为什么将子字符串连接成字符串的某个东西被称为
splitstr
,该过程描述了反向操作。
在表达式中有一定的含义(它表示按位OR,或逻辑快捷方式,或当加倍为
|
)但是Tcl的其余部分只是将其视为普通字符。在Tcl中还有一些地方,
具有特殊的含义:我们想到了正则表达式和命令管道。感谢您的响应。但是,由于连接字符串需要用引号指定,所以这里没有这样指定。如果这个“|”用作连接字符串,那么它将使所有元素都成为1 | 2 | 3 | 4 | 5。或者这个“|”还有其他用途吗?@nihaldixit连接字符串不需要在引号中指定。该示例使用引号,因为空格在Tcl语法中是一个单词分隔符。问题中的连接字符串确实会导致
1 | 2 | 3 | 4 | 5
,如果没有它
1 2 3 4 5
。我很难理解你评论的最后一部分。还有后续问题吗?
set data {1 2 3 4 5}
join $data ", "
     → 1, 2, 3, 4, 5