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 条件。

回顾一下:只有 nilfalse 是假值,任何其他值都被视为 truthy

关于ruby - 检查方法的真实性是否也在条件语句(if)中运行它?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40556239/

10-13 02:11