我想在这个充满哈希的数组中搜索一个给定的数字:
Time_tables = [
{ name: 01251},
{ name: 05012},
{ name: 03232},
{ name: 02435},
{ name: 04545},
{ name: 03545}
]
我的预期结果是:
{name: 02435}
这是代码:
def finding_numbers(tables, train_number)
tables.each do |i|
if i[:name] == train_number
p i
end
end
end
finding_numbers(Time_tables, 02435)
如果我运行此代码,我会得到这个:
{:name=>1309}
此数字甚至不在数组中。发生了什么事?
答案 0 :(得分:4)
在ruby中,以0
开头的数字文字被读作八进制表示:
puts 02435
# => 1309
所以实际上你的代码运行正常:它找到了正确的元素,它只是十进制数字,而不是八进制