我重新表述这个问题,因为它要么太无趣,要么太难以理解。:)
最初的问题是因为我正在从 Java 转换到 Groovy,但是当转换到任何高级语言(Ruby、Python、Groovy)时,该示例同样适用。
Java 很容易调试,因为代码行和相当细粒度的行为之间存在清晰的关系,例如使用 for 循环操作数组:
for ( int i=0; i < array1.size(); i++ )
{
if ( meetsSomeCriterion(array1.elementAt(i) )
{
array2.add( array1.elementAt(i) );
}
}
所以你可以在循环中的测试上设置一个断点,看看接下来会发生什么。(我知道有更好的方法来写这个;这只是为了说明这一点。)
在像 Ruby 这样的语言中,惯用风格似乎有利于更高级别的单行编码,例如来自http://rubyquiz.com/quiz113.html
quiz.to_s.reverse.scan(/(?:\d*\.)?\d{1,3}-?/).join(',').reverse
我想知道您是否可以提出任何有效的调试技术,例如,如果您更改了正则表达式......您是否仍会使用传统的调试器,并进入/跳过链式方法?或者,还有更好的方法?
谢谢!