内联 ifunless
常见的模式是使用内联或尾随 if
或 unless
:
puts "x is less than 5" if x < 5
这被称为条件修饰符,是添加简单保护代码和早期返回的便捷方式:
def save_to_file(data, filename)
raise "no filename given" if filename.empty?
return false unless data.valid?
File.write(filename, data)
end
无法向这些修改器添加 else
子句。此外,通常不建议在主逻辑中使用条件修饰符 - 对于复杂的代码,应该使用普通的 if
,elsif
,else
。