はRubyで次のコードを書くための簡単な方法があります:定義済みのRubyコードを短くしますか?
if defined?($servlet_context) then true
else false
end
はRubyで次のコードを書くための簡単な方法があります:定義済みのRubyコードを短くしますか?
if defined?($servlet_context) then true
else false
end
defined?
operator evaluates to a string or nil
:
defined?
オペレータが(任意の式であることができる)は、その引数が定義されていない場合、それ以外の場合は、その引数の説明を返しnil
返します。
真実を欲しがっているのなら、defined?($servlet_context)
となります。しかし、絶対にブール値が必要な場合は、ダブルバングキャストを使用できます。
!!defined?($servlet_context)
defined?($servlet_context)
はまったく同じ効果があります。
また、ルビでは不要なので、これを短くする最も簡単な方法は - 'then'を削除することです。
まったく同じ効果ではない、*ほぼ同じ効果。 –
これは** defined?($ servlet_context)**とまったく同じです。 if-elseブロックでもっとやりたいですか? – iltempo
@iltempo:いいえ、まったく同じではなく、 'defined? '演算子はあなたにブール値を与えません。 –
@mu。私は逃しました。 – iltempo