Что происходит с неявными возвращаемыми значениями в Ruby? - PullRequest
5 голосов
/ 11 июня 2010

Итак, я начал смотреть на ruby, и многие вещи выглядят неплохо, но я довольно удивлен неявными инструкциями return.Я понимаю, что все возвращает себя или ноль по умолчанию, но не последнее значение оператора.

Для меня это выглядит ужасно хрупким (особенно), если вы работаете с методом, который не планирует возвращать что-то (особенно функция, которая изменяет состояние / деструктивный метод!), другие люди могут в конечном итоге полагаться на возврат, который не важен для цели метода и имеет хорошие шансы измениться.

В чем смысл неявноговернуть?Есть ли способ облегчить некоторые вещи?

Считается ли хорошей практикой всегда иметь возврат для предотвращения неявных возвратов?

Не беспокоюсь ли я об этом?

PS Часто ли люди используют неявный возврат, когда они хотят вернуть определенную вещь из метода, не облегчает ли это другим людям в вашей группе взломать код друг друга?Конечно, документируйте все и дайте осмысленные имена, которые вы могли бы сказать, но люди не всегда делают это в реальной жизни.

Ответы [ 3 ]

5 голосов
/ 11 июня 2010

Не добавляйте оператор puts в конец метода или блока, если только вы не хотите вернуть nil.

4 голосов
/ 11 июня 2010

Ты слишком беспокоишься. В моей ~ 5-летней практике по рубину у меня не было случая, когда я ошибочно полагался на какое-то возвращаемое значение.

И это заставляет методы выглядеть по-настоящему самоочевидно и улучшает читабельность. Я думаю, что это очень естественно.

0 голосов
/ 11 июня 2010

Хороший вопрос.

Это, вероятно, одна из тех рубиновых функций, которые должны обрабатываться с помощью TLC .. да, TATFT .. Я имею в виду, сильное тестирование :)

Также хорошим стимулом для вас является предоставление RDoc для ваших методов, в которых будет четко указано, что методы возвращают.

...