Ruby Language
Truthiness
Sök…
Anmärkningar
Som tumregel ska du undvika att använda dubbla negationer i kod. Rubocop säger att dubbla negationer är onödigt komplicerade och ofta kan ersättas med något mer läsbart.
Istället för att skriva
def user_exists?
!!user
end
använda sig av
def user_exists?
!user.nil?
end
Alla objekt kan konverteras till booleaner i Ruby
Använd syntaxen för dubbel negation för att kontrollera om värderingar är sanna. Alla värden motsvarar en booleska, oavsett typ.
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
Alla värden utom nil
och false
är sanningsenliga.
irb(main):006:0> !!nil
=> false
irb(main):007:0> !!false
=> false
Sannhet av ett värde kan användas i om-annars-konstruktioner
Du behöver inte använda dubbel negation i uttalanden om annars.
if 'hello'
puts 'hey!'
else
puts 'bye!'
end
Ovanstående kod skriver ut "hej!" på skärmen.
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow