【发布时间】:2019-12-25 04:49:51
【问题描述】:
使用 Ruby 2.6.3,我遇到了一个错误,当我尝试“警告”一个至少有一个键作为符号的哈希时,会引发 ArgumentError。如果我尝试“放置”相同的哈希,则不会出现错误并且哈希会正常打印。
>> h = {:one => 1}
=> {:one=>1}
>> puts h
{:one=>1}
=> nil
>> warn h
Traceback (most recent call last):
5: from /Users/rishi/.rvm/rubies/ruby-2.6.3/bin/irb:23:in `<main>'
4: from /Users/rishi/.rvm/rubies/ruby-2.6.3/bin/irb:23:in `load'
3: from /Users/rishi/.rvm/rubies/ruby-2.6.3/lib/ruby/gems/2.6.0/gems/irb-1.0.0/exe/irb:11:in `<top (required)>'
2: from (irb):48
1: from /Users/rishi/.rvm/rubies/ruby-2.6.3/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_warn.rb:15:in `block in <module:Kernel>'
ArgumentError (unknown keyword: one)
似乎在我的 kernel_warn.rb 的第 15 行抛出错误:
module_function define_method(:warn) {|*messages, uplevel: nil|
...
谁能建议如何解决?
【问题讨论】: