如何避免Ruby中嵌入的"if"语句的大量(20到30之间)?

bte*_*les 1 ruby ruby-on-rails

我有一个大型脚本,有大约20个嵌入式if语句(Yay!),用于解析数据文件.从某种意义上说,这是正确的,因为如果任何这些评估失败,脚本就不应该继续运行.

但我的直觉说,有一种更优雅的方式来完成同样的事情.我熟悉rails的statemachine插件,但这似乎有点矫枉过正(似乎有点矫枉过正).

有没有机会通过工作流程或其他方式减少嵌入式"ifs"的数量?

Toa*_*oad 8

反转if语句的条件并离开特定函数(如果可以).这样你可以获得很多if而不是嵌套

  • 完善!谢谢雷纳!找到一个解释Ruby中Guard子句的链接:http://www.thechrisoshow.com/2009/2/16/using-guard-clauses-in-your-ruby-code (2认同)