object.not_nil?自分に問いかけると、自分のコードがよく見えると思います!object.nil?。だから私の質問:!nilの便利な方法は本当にありませんか?物事を砂糖漬けにする?目の前にあるのに見えないのか、それとも重要なポイントを見逃しているだけなのか。
5 に答える
これはどう?
not object.nil?
しかし、より簡単なことは、変数自体をテストすることによっての「真実性」をチェックすることです。nilは暗黙的にであるためfalse、チェックするだけobjectです。
上のレベルで砂糖を紹介することができます。それ以外の:
if not object.nil?
あなたは書ける:
unless object.nil?
これはどうですか ?
if object # sth endfalseの場合は実行されないのと同じではありませんが
object、コードによってはより良い場合があります。別の解決策(これも同じではありません)。質問に
ruby-on-rails-3:を使用してタグを付けpresent?たため、これはブロックを実行し[]ませ{}ん!object.nil?。場合によってはもう1つ:条件がより複雑な場合(および/または)、これを使用
unlessするとあまり効果的ではありません。&&||あなたの状態がこの形の場合:
if !object.nil? && object.something? # sth endtryRailsを使用しているので、次のように使用できます。if object.try(:something?) # sth end他のすべての場合、
!object.nil?またはnot object.nil?私が推測する最良の解決策のままです。
#nilの周りの便利さはいつですか?議論されている、Activesupportのメソッド#blank?と#present?忘れてはいけません。
必ずしもそうしたいとは限りませんが、not_nil?自己紹介することができます。
class Object
def not_nil?
!self.nil?
end
end
次に、次のようなことができます。
nil.not_nil?
==> false
3.not_nil?
==> true
a = []
a.not_nil?
==> true