수색…


비고

일반적으로 코드에서 이중 부정을 사용하지 마십시오. Rubocop 은 불필요하게 복잡하고 종종 더 가독성있는 것으로 대체 될 수 있다고 말한다 .

글쓰기 대신

def user_exists?
    !!user
end

용도

def user_exists?
    !user.nil?
end

루비에서는 모든 객체가 부울로 변환 될 수 있습니다.

값의 진실성을 확인하기 위해 이중 부정 구문을 사용하십시오. 모든 값은 유형에 관계없이 부울 값에 해당합니다.

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