gpt4 book ai didi

ruby-on-rails - 来自 Trie gem 的 Ruby 覆盖方法 - 未定义的方法

转载 作者:数据小太阳 更新时间:2023-10-29 08:35:51 24 4
gpt4 key购买 nike

我在项目中使用 Trie ( https://github.com/tyler/trie) gem 并喜欢它。但它有一个问题非常烦人。

has_key? 方法在找不到 key 时返回 nil 而不是 false(因为每个方法都以 ? 应该)

我试过在他们的 GitHub ( https://github.com/tyler/trie/issues/26 ) 上打开一个问题,但没有成功。

因此,合理的下一步 - 尝试覆盖该方法。

我将其添加到我的项目中:

class Trie
alias :old_has_key? :has_key?
def has_key?(key)
puts "My new Trie has_key"
old_has_key?(key)
end
end

只是看看我能不能摆脱它。

不幸的是,当我运行 rails console 时,我得到:

`<class:Trie>': undefined method `has_key?' for class `Trie' (NameError)

正如我在其他地方发现的那样,这应该有效。知道为什么没有吗?

我在这里缺少什么? trie.rb 的位置?还有别的吗?

最佳答案

从您的错误消息来看,您似乎正在调用 Trie 类的 has_key? 方法,而不是它的一个实例。如果您创建一个实例,您的代码就可以正常工作:

my_trie = Trie.new
my_trie.has_key?('foo')
# My new Trie has_key
# => nil

关于ruby-on-rails - 来自 Trie gem 的 Ruby 覆盖方法 - 未定义的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41764631/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com