Я перефразирую этот вопрос, потому что он был либо слишком неинтересен, либо слишком непонятен. :)
Первоначальный вопрос возник из-за того, что я делаю переход с 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
Мне интересно, можете ли вы предложить какие-либо эффективные методы для отладки этого, например, если вы изменили регулярное выражение ... вы все еще используете традиционный отладчик и переходите в / через цепочечные методы? Или есть лучший способ?
Спасибо!