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