サーチ…


備考

経験則として、コードに二重否定を使用しないでください。 Rubocopによると 、二重否定は不必要に複雑であり、しばしばより読みやすいものに置き換えることができます。

書くのではなく

def user_exists?
    !!user
end

つかいます

def user_exists?
    !user.nil?
end

すべてのオブジェクトがRubyでブール値に変換される可能性があります

値の正当性をチェックするには、二重否定構文を使用します。すべての値は、その型に関係なくブール値に対応します。

irb(main):001:0> !!1234
=> true
irb(main):002:0> !!"Hello, world!"
(irb):2: warning: string literal in condition
=> true
irb(main):003:0> !!true
=> true
irb(main):005:0> !!{a:'b'}
=> true

nilfalseを除くすべての値は真実です。

irb(main):006:0> !!nil
=> false
irb(main):007:0> !!false
=> false

if-else構文で値の真実性を使うことができます

if-else文で二重否定を使用する必要はありません。

if 'hello'
    puts 'hey!'
else
    puts 'bye!'
end

上記のコードは 'hey!'を表示します。画面上。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow