这个Ruby代码有什么问题(我假设它在if / else语句中)?

时间:2015-04-27 14:17:48

标签: ruby object if-statement equality

此代码的目标是,如果对象的"UniqueActiveFaults" "00:1343" "00:1345" "00:1523" "90:1344" "90:5900" "90:8988" "BA:1330" "BA:8797" item_name与要比较的对象的qtyclass 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) 相同,则返回true。使用我的代码,两者都返回false。

  if @item_name == @qty
    true
  else
    false
  end

我应该怎么做才能修复它?我也试过让if / else语句说出以下内容:

1

  if item_name == qty
    true
  else
    false
  end

2

  if item_name.==(qty)
    true
  else
    false
  end

3

productFlavors {
    amazon
    googleplay
}

1 个答案:

答案 0 :(得分:2)

def ==(other_item)
  item_name == other_item.item_name && qty == other_item.qty
end

您正在检查当前项目的名称是否等于数量;这不太可能是真的。 (另外,假设您返回一个布尔值,if是多余的。)