我正在尝试覆盖显示here的==
操作。我创建了==
:
class Point
def ==(g)
p'Never reaches here'
if @x==g.grid
true
else
false
end
end
end
我这样称呼方法:
def home? (gridPoint,point)
if point==gridPoint
do something
end
当我运行应用程序时,永远不会打印"Never reaches here"
,应用程序会跳过剩下的代码并退出。
如果我在gridPoint
之前打印Point
和==
,我可以看到它们都是积分。为什么程序似乎从未输入==
方法?
我试过了point.==(gridPoint)
。这也不起作用,也无法尝试清理代码。
任何人都可以帮助我吗?
答案 0 :(得分:-2)
我想我有一些建议为什么你的确切代码不起作用
==
方法声明为类方法而不是实例方法。 class Point
attr_accessor :x
def initialize(string)
@x == string
end
def self.== (g)
p'Never reaches here'
@x==(g) ? true : false
end
def home? (gridpoint, point)
Point == (gridpoint)
end
end
n = Point.new("Schylar")
puts n.home?("Schylar","Schylar")