2014-03-19 116 views

回答

2

字符串进行比较逐字符较小。

当你比较1: VS 2:,比较始于2 VS 1,比较与预期的结果停在那里。

当你比较1: VS 10:,比较始于1 VS 1,并且由于它是一个平局,比较移动到下一个比较,这是: VS 0,和比较,结果停那里,你会发现令人惊讶的(因为你期望字符串中的整数将被比较)。

为了进行预期的比较,请使用to_i将两个操作数都转换为整数。

0

每个两个字符串的第一个字符是相同的。正如戴夫在评论中所说,第一个字符'0'的第二个字符小于':',所以第一个字符串小于第二个字符。

0

因为对于0 ASCII码是48,这比:的ASCII码,它是58

1

它是在ASCII中逐字符比较。

'10:' < '1:'(49 < 49) || (48 < 58) || (58 < ?)

#=> true 

'1:' < '2:'(49 < 50) || (58 < 58)

#=> true 

从左至右依次为布尔检查使用,并检查其中true发现断裂。

注意:这只是我对各种示例模式的观察。

相关问题