• You are not authorized to view comments.
  • You are not authorized to view comments.

ความแปลกของ String Ranges ใน Ruby

> ('1'..'10').to_a
=> ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
> ('2'..'10').to_a
=> []
> ('3'..'10').to_a
=> []
> ('2'..'20').to_a
=> ["2", "3", "4", "5", "6", "7", "8", "9", . . . . ., "18", "19", "20"]
> ('3'..'20').to_a
=> []
> ('10'..'20').to_a
=> ["10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"]
> (1..10).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
> (2..10).to_a
=> [2, 3, 4, 5, 6, 7, 8, 9, 10]
> (3..10).to_a
=> [3, 4, 5, 6, 7, 8, 9, 10]

update:

> (2′..’10).to_a
=> []

เพราะมันเรียงลำดับตามตัวอักษรสิครับ '2' มีค่ามากกว่า '10' (อย่าลืมว่ามันเป็นสตริง มันจะไล่เทียบจากอักษรตัวแรก ไม่ได้เทียบจากค่าของตัวอักษร)