在我使用以下代码进行字符串比较时,我得到的是-1而不是0
set s1 "sekhar"
set s2 "sekhar"
puts [string compare s1 s2]
发布于 2015-12-20 03:19:05
当你这样做的时候:
string compare s1 s2
您正在比较字符串文字s1
和s2
。由于根据规则(与增强后的C strcmp()
函数基本相同) s1
较小,因此结果为-1
。
要将字符串与这些名称进行比较,需要先读取变量,然后再将它们提供给string compare
。您可以通过在名称前加上$
(在Tcl中的意思是“立即读取此变量”)来完成此操作:
string compare $s1 $s2
在内部,Tcl通过引用传递值,并在可能的情况下(即在过程中)将变量对索引的访问减少到局部变量表中。这个操作在实践中实际上是相当快的。
https://stackoverflow.com/questions/33922036
复制相似问题