在字符串比较中,我得到的是-1而不是0我使用了以下代码
set s1 "sekhar"
set s2 "sekhar"
puts [string compare s1 s2]
当你这样做时:
string compare s1 s2
您正在比较字符串文字s1
和s2
。由于s1
根据规则较小(与具有增强功能的C strcmp()
函数基本相同),因此得到-1
。
要将字符串与这些名称进行比较,需要在将变量输入string compare
之前读取这些变量。您可以在名称前面加上$
(在Tcl中的意思是"立即读取此变量"):
string compare $s1 $s2
在内部,Tcl通过引用传递值,并尽可能减少对局部变量表中索引的变量访问(即在过程中)。这个操作实际上在实践中相当快。