有人可以为此给我最好的解决方案吗
我有一个class
Class A
def a
return "a" if @logic
return "b"
end
def change_logic
@logic = true
end
end
在我的解决方案中,我应该能够做到
object = A.new
object.change_logic
object.a #print "a"
或
object = A.new
object.a #print "b"
为此,我创建了方法change_logic
,它将更改@logic
实例变量。
但是我需要在没有像@logic
这样的实例变量的情况下实现这一点
什么是最好的方法?
答案 0 :(得分:1)
如果您需要更改有条件返回的内容,但又不想在实例级别上获取该条件,则需要将该方法告知该条件。例如,
Class A
def a(logic = false)
logic ? 'a' : 'b'
end
end
然后它将被调用为:
object = A.new
object.a(true) #print "a"
或
object = A.new
object.a #print "b"