Сократить код Ruby с определенным? - PullRequest
1 голос
/ 02 марта 2012

Есть ли более короткий способ написания следующего кода на Ruby:

if defined?($servlet_context) then true
else false
end

Ответы [ 2 ]

8 голосов
/ 02 марта 2012

Оператор defined? оценивается как строка или nil:

Оператор defined? возвращает nil, если его аргумент (который может быть произвольным выражением) не определен, в противном случае он возвращает описание этого аргумента.

Так что, если вы просто хотите что-то правдивое, тогда подойдет defined?($servlet_context). Однако, если вам абсолютно необходимо иметь логическое значение, вы можете использовать приведение с двойным ударом:

!!defined?($servlet_context)
0 голосов
/ 02 марта 2012

defined?($servlet_context) будет иметь точно такой же эффект.

Также в ruby ​​не требуется, поэтому самый простой способ сократить это - удалить 'then'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...