2009-07-20 53 views
2

当我写一些脚本,我通常会达到一个点,我的代码如下所示:如何让Ruby的N端看起来更好?

  end 
     end 
     end 
    end 
    end 
end 

我不知道你怎么想,但是这看起来很丑陋的我。可以做些什么呢?

+1

这不是Ruby独有的。楼梯代码一直存在。 – Pesto 2009-07-20 13:18:38

+1

Python对此很好,因为它只能向外走,不会再回来。我知道这不是一种选择,但这是python的设计目标之一。 – Soviut 2009-07-20 19:29:42

回答

19

不要嵌套你的代码这么多?重构使用更多的方法?使用传递给其他例程的块?

一般来说,深嵌套是一种方法变得太复杂并且应该被分解的指标。它也可以帮助隐含的结构化文档,通过根据内部的重构方法命名内部的复合语句。

4

如果这些内部块做了一些容易命名(也许可重用?)的东西,为什么不将它们重构为小的单独函数呢?那么你会以更短的结束序列结束。

否则另一种方法是使用Python :-)

+0

我确定有人会建议Python :) – Geo 2009-07-20 12:36:28

5

建议分成小块是好的。但是,如果您需要大量嵌套块,则可以使用注释标记end关键字。

end # End conditional statement 
    end # End method declaration 
end # End class declaration 

仍然丑陋,但至少更清晰。

前面提到的其他选项是可取的。

2

尝试使用小的可测试函数。不仅您的函数和更重要的逻辑易于测试,而且您的代码变得更具可读性。

1

我看到嵌套“{}”块和4-空间软选项卡和:

端;端;端;端

我想这节省了垂直空间,但我不不建议,关于避免深层嵌套和评论你的块结束行的上述评论是有效的方法。也许深层嵌套是为了避免方法调用需要加速的开销,但可读性几乎总是胜过那种“优化”

1

如果您很乐意编译自己的Ruby,那么可以使用ennnnnnnd样式语法(链接是RubyKaigi谈话)。不幸的是,对于你来说,这已经被Ruby core建议和rejected

相关问题