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