Метод defined?
дает результат для стенографического выражения, заданного в качестве аргумента. Например, результатИспользование `defined?` При одноуровневом расширении
defined? foo
чувствителен ли foo
буквально любой определяется переменной/метод. Он не делает разницы, является ли foo
определяется как строка, которая является действительным (существующим) выражение:
foo = "Array"
или нет:
foo = "NonExistingConstant"
Можно ли сделать defined?
быть чувствительным к данному аргументу расширен один уровень? То есть, для foo = "Array"
, он должен вернуть "constant"
и для foo = "NonExistingConstant"
, он должен вернуть nil
. Если да, то как?
вы собираетесь проверить только константы? 'const_get', может быть? –
@ Сергио Туленцев Да. Ваша догадка правильная. Я на самом деле использую 'const_get', но хочу, чтобы это условие было оценено только при наличии такой константы. Я использую 'rescue' сейчас, но хотел сделать это без него. – sawa