搜索算法不工作

  • 本文关键字:工作 搜索算法 ruby
  • 更新时间 :
  • 英文 :


我想在这个充满哈希值的数组中搜索给定的数字:

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}

这个数字甚至不在数组中。发生了什么事?

在ruby中,以0开头的数字字面值被读取为八进制表示:

puts 02435
# => 1309

所以实际上你的代码运行得很好:它找到了正确的元素,它只写小数,而不是八进制

最新更新