Ruby 逻辑字符串比较(例如 "a" > "b")

Ruby Logical String comparison (eg. "a" > "b")

嗨,

我想了解 Ruby 在进行逻辑比较时如何处理字符串。

我试过了:

"a" > "b" #--> false
"ab" > "b" #--> false
"z" > "az" #--> true
# i even tried
"z" > "abcdefghijklmnopqrstuvwxyz" #--> true

就像 Ruby 给从 a(最弱)到 z(最强)的字符赋予权重,它甚至不检查从第一个字符开始的更远的字符。

我希望对这种现象做出解释。非常感谢。

字符串按照单词本中的顺序排列。

如果 string1 在本书中出现的时间晚于 string2

,则

string1 > string2 为真

"a" 在第 1 页,"b" 在第 30 页,所以 "a">"b" 是错误的。

同样的原因,如果你有一个充满文件名的文件的文件夹,10.txt11.txt 出现在 1.txt2.txt[=19 之间=]

它叫做lexicographical ordering,如果第一个字母不同,它会忽略第二个字母。