[루비] 진짜 뭐야?

4586 단어 Rubybooleantech
요즈음 기술서를 읽으니 알 것 같다
사소한 일이라도 빈번하게 내보내야 한다.
미래를 위한 자신의 보도입니다.
※ 검증 루비 버전: 2.7.2

결론


루비에서 falsenil를 제외한 모든 값은 진짜다.

True 및 False


Ruby에서 모든 데이터 값은 범주에 속하는 객체입니다.
물론 진위도 예외는 아니다.
irb> true.class
=> TrueClass
irb> false.class
=> FalseClass

irb> true.class.ancestors
=> [TrueClass, Object, Kernel, BasicObject]
irb> false.class.ancestors
=> [FalseClass, Object, Kernel, BasicObject]
가짜와nil 이외에 진짜라면 0 (빈 문자)도 진짜다.
# 「0」は true
irb> p 0 ? true : false
true
=> true

# 「 」もtrue
irb> p '' ? true : false
(irb):15: warning: string literal in condition
true
=> true
그러나 다른 언어의'0'은 대부분이 가짜이고 자바스크립트의 0과 빈 문자는 가짜입니다.

nil와 가짜

nil? 방법으로 니엘과 가짜를 구분할 수 있다.
irb> a = nil
=> nil
irb> a.nil?
=> true
irb> b = false
=> false
irb> b.nil?
=> false
루비 프로그램을 쓰면 nil이 섞일 수 있어 nil 검사를 자주 한다
nil 대상이 형식 변환을 한 후 nil을 피할 수 있습니다.
irb> nil.to_s
=> ""
irb> nil.to_i
=> 0
irb> nil.to_a
=> []
irb> nil.to_h
=> {}
irb> nil.to_sym
NoMethodError (undefined method `to_sym' for nil:NilClass)
to_sym안 될 것 같아요.

추기


루비의 진/가짜와 진/가짜를 혼동한 다음 글은 매우 참고 가치가 있다.
루비의 진/가짜와 진/가짜는 다르다

좋은 웹페이지 즐겨찾기