这个Ruby代码有什么问题(我假定它在if/else语句中)?
此代码的目标是,如果对象的这个Ruby代码有什么问题(我假定它在if/else语句中)?,ruby,object,if-statement,equality,Ruby,Object,If Statement,Equality,此代码的目标是,如果对象的项目名称和数量与所比较的对象相同,则返回true。在我的代码中,两个都返回false class Item attr_reader :item_name, :qty def initialize(item_name, qty) @item_name = item_name @qty = qty end def to_s "Item (#{@item_name}, #{@qty})"
项目名称
和数量
与所比较的对象相同,则返回true。在我的代码中,两个都返回false
class Item
attr_reader :item_name, :qty
def initialize(item_name, qty)
@item_name = item_name
@qty = qty
end
def to_s
"Item (#{@item_name}, #{@qty})"
end
def ==(other_item)
if @item_name.==(@qty)
true
else
false
end
end
end
p Item.new("abcd",1) == Item.new("abcd",1)
p Item.new("abcd",2) == Item.new("abcd",1)
我该怎么做才能修好它?我还尝试过让if/else语句说以下内容:
一,
二,
三,
您正在检查当前项目的名称是否等于数量;这不太可能是真的。(另外,如果返回的是布尔值,if
是多余的。)
if @item_name == @qty
true
else
false
end
if item_name == qty
true
else
false
end
if item_name.==(qty)
true
else
false
end
def ==(other_item)
item_name == other_item.item_name && qty == other_item.qty
end