我的ruby脚本如下:
class Person
def initialize(name)
@name = name
end
def aMethod()
puts "Excecuting aMethod"
end
end
class Employee < Person
end
e1 = Employee.new("Salunke")
e1.id
执行上述脚本后我得到以下错误:
first.rb:16: warning: Object#id will be deprecated; use Object#object_id
如何解决上述警告/错误?
答案 0 :(得分:3)
根据警告:
Object#id will be deprecated; use Object#object_id
所以,将id
替换为object_id
e1.object_id
答案 1 :(得分:0)
在您的示例中,“e1”是您的类“Employee”(扩展Person)的实例
当你在实例“e1”上调用方法“id”(向对象发送消息“id”)时,ruby尝试在整个对象链上调用id方法。
主Object类没有声明“id”而是声明“object_id”方法。
正如Phelios指出的那样,信息很清楚。
答案 2 :(得分:0)
问题是:类id
上有Object
方法,但这可能不是您想要的那种ID。它是ruby vm生成的员工实例的object-id。由于这是一个非常常见的错误,id
方法已被弃用,而更加简洁object_id
。您必须自己实施id
方法,或者,如果您真的需要object_id
,请调用该方法而不是调用id