prop
被分配了一个值。然后,应该在此实例上调用test_it?
truthy。相反,test_it?
返回nil。我做错了什么?
class ClassA
attr_accessor :prop
def test_it?
@prop
end
end
a = ClassA.new
a.prop = "test"
if puts a.test_it?
答案 0 :(得分:6)
if puts a.test_it?
此处,您没有使用a.test_it?
,而是puts
的返回值作为条件,即nil
。
答案 1 :(得分:2)
如果您希望if语句评估为true,则需要执行
if a.test_it?
# code to execute unless statement is false or nil
end
如果if
不为false或为零,则@prop
语句将评估为true。因此,如果将@prop
指定为test
,则if语句为true,并评估if
内的代码。