3

object.not_nil?自分に問いかけると、自分のコードがよく見えると思います!object.nil?。だから私の質問:!nilの便利な方法は本当にありませんか?物事を砂糖漬けにする?目の前にあるのに見えないのか、それとも重要なポイントを見逃しているだけなのか。

4

5 に答える 5

6

これはどう?

not object.nil?

しかし、より簡単なことは、変数自体をテストすることによっての「真実性」をチェックすることです。nilは暗黙的にであるためfalse、チェックするだけobjectです。

于 2012-09-27T13:00:26.603 に答える
4

上のレベルで砂糖を紹介することができます。それ以外の:

if not object.nil?

あなたは書ける:

unless object.nil?
于 2012-09-27T13:10:00.880 に答える
3
  • これはどうですか ?

    if object
      # sth
    end
    

    falseの場合は実行されないのと同じではありませんがobject、コードによってはより良い場合があります。

  • 別の解決策(これも同じではありません)。質問にruby-on-rails-3:を使用してタグを付けpresent?たため、これはブロックを実行し[]ませ{}!object.nil?

  • 場合によってはもう1つ:条件がより複雑な場合(および/または)、これを使用unlessするとあまり効果的ではありません。&&||

  • あなたの状態がこの形の場合:

     if !object.nil? && object.something?
       # sth
     end
    

    tryRailsを使用しているので、次のように使用できます。

    if object.try(:something?)
      # sth
    end
    
  • 他のすべての場合、!object.nil?またはnot object.nil?私が推測する最良の解決策のままです。

于 2012-09-27T13:12:31.030 に答える
2

#nilの周りの便利さはいつですか?議論されている、Activesupportのメソッド#blank?と#present?忘れてはいけません。

于 2012-09-27T13:19:53.477 に答える
2

必ずしもそうしたいとは限りませんが、not_nil?自己紹介することができます。

class Object
    def not_nil?
        !self.nil?
    end
end

次に、次のようなことができます。

nil.not_nil?
==> false

3.not_nil?
==> true

a = []
a.not_nil?
==> true

于 2012-09-27T13:46:33.993 に答える