【问题标题】:Undefined method Ruby未定义的方法 Ruby
【发布时间】:2019-12-25 16:59:09
【问题描述】:

我想创建一个自定义对象数组。但是当我尝试调用其中一个对象的方法时,我收到一个错误undefined method `get_id' for #Map:0x000055cf036a0838>。

这是我的代码:

maps = []
map = Map.new(id)
maps.push(map)
puts maps[0].get_id

【问题讨论】:

  • 显示Map 类定义。
  • 你可能首先会想,为什么你没有想到Map类是否有实例方法get_id
  • @ray 对此我感到非常抱歉。我刚开始在 C/C++ 之后学习 Ruby。所以我过去总是为方法写 get_ 和 set_ 名称。

标签: arrays ruby oop object


【解决方案1】:

您的Map 类似乎没有定义get_id 方法。提示 - 在 Ruby 中你不使用 get_ 和 set_ 前缀,所以也许你只是想调用 maps[0].id?

【讨论】:

  • 你完全正确!我已将我的方法重命名为 read_id。谢谢!
  • 在initialize方法中写@id = id更常见,attr_reader :id创建访问方法。
  • 和def id=(value),当您需要从外部设置 ID 时(您将对值进行一些验证以确保 id 始终具有允许的值)。
  • 以后,我强烈建议您在 StackOverflow 上发布问题时写一个minimal reproducible example。您的问题不可重现,因为您没有向我们展示 Map 类的定义。
猜你喜欢
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
  • 2012-03-13
  • 1970-01-01
  • 2015-10-11
  • 2016-06-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多