NilClass
NilClass
싱글턴 객체 nil의 클래스예요.
출처: Ruby 3.3 API
본문
nil은 그 자체로 하나뿐인 객체라서, nil의 클래스는 바로 NilClass예요. nil의 여러 메서드는 연산자처럼 동작해요.
`&``|``===``=~``^`
다른 것들은 nullity(없음)이라는 개념을 다른 클래스로 전달하는 변환자(converter)처럼 동작해요.
`rationalize``to_a``to_c``to_h``to_r``to_s`
또 다른 메서드는 검사(inspection)를 제공해요.
`inspect`
마지막으로 질의(query) 메서드 하나가 있어요.
`nil?`
Public Instance Methods
false & object → false, nil & object → false
항상 false를 돌려줘요.
false & true # => false
false & Object.new # => false
인자 object는 평가되어요.
false & raise # Raises RuntimeError.
true === other → true or false, false === other → true or false, nil === other → true or false
true 또는 false를 돌려줘요.
Object#==와 비슷하게, object가 Object의 인스턴스이면서 (그 많은 하위 클래스의 인스턴스는 아닌 경우) 그렇게 동작해요.
이 메서드는 보통 그 하위 클래스들에서 재정의되어, case 문 안에서 의미 있는 동작을 제공해요.
nil =~ object → nil
항상 nil을 돌려줘요.
이 덕분에 이런 코드를 자연스럽게 쓸 수 있어요.
while gets =~ /re/
# ...
end
false ^ object → true or false, nil ^ object → true or false
object가 nil이거나 false라면 false를, 그 외에는 true를 돌려줘요.
nil ^ nil # => false
nil ^ false # => false
nil ^ Object.new # => true
inspect → 'nil'
문자열 'nil'을 돌려줘요.
nil.inspect # => "nil"
nil? → true
항상 true를 돌려줘요. 다른 모든 객체에서 nil? 메서드는 false를 돌려줘요.
rationalize(eps = nil) → (0/1)
영(0)을 Rational로 돌려줘요.
nil.rationalize # => (0/1)
인자 eps는 무시돼요.
to_a → []
빈 Array를 돌려줘요.
nil.to_a # => []
to_c → (0+0i)
영(0)을 Complex로 돌려줘요.
nil.to_c # => (0+0i)
to_d → bigdecimal
nil을 BigDecimal로 나타낸 값을 돌려줘요.
require 'bigdecimal'
require 'bigdecimal/util'
nil.to_d # => 0.0
to_f → 0.0
항상 영(0)을 돌려줘요.
nil.to_f #=> 0.0
to_h → {}
빈 Hash를 돌려줘요.
nil.to_h #=> {}
to_i → 0
항상 영(0)을 돌려줘요.
nil.to_i #=> 0
to_r → (0/1)
영(0)을 Rational로 돌려줘요.
nil.to_r # => (0/1)
to_s → ''
빈 String을 돌려줘요.
nil.to_s # => ""
false | object → true or false, nil | object → true or false
object가 nil이거나 false라면 false를, 그 외에는 true를 돌려줘요.
nil | nil # => false
nil | false # => false
nil | Object.new # => true
더 알아보기
nil을 만드는 리터럴과 truthy/falsy 개념은 literals 문서에서 확인하세요.Object#nil?메서드도 함께 보세요.