【发布时间】:2016-11-11 21:07:28
【问题描述】:
def add
puts "\nAdd a restaurant\n\n".upcase
restaurant = Restaurant.new
print "Restaurant name: "
restaurant.name = gets.chomp.strip
if restaurant.save
puts "\nRestaurant Added\n\n"
else
puts "\nSave Error: Restaurant not added\n\n"
end
end
def save
return false unless Restaurant.file_usable?
File.open(@@filepath, 'a') do |file|
file.puts "#{[@name, @cuisine, @price].join("\t")}\n"
end
return true
end
我正在学习如何使用 Ruby 编写代码的教程。方法add 创建一个新实例,然后将其保存到文件中(使用方法save)。在有条件的if 中,我很想知道save 是如何被调用的,因为它从未被直接调用过。
我知道当您在 if 条件中放置一个方法并且不使用任何运算符(即:=、== 等)时,您正在检查该语句的返回值的“真实性”。但是将方法放入条件中也会运行它吗?如果没有,上面的例子如何调用save 方法?
【问题讨论】:
-
如果不调用该方法,
if语句将如何评估其条件的真实性?