NilClass
NilClass
NilClass는 싱글턴 객체 nil의 클래스에요. 여러 메서드가 연산자처럼 동작하고(&, |, ===, =~, ^), 어떤 것들은 'null'이라는 개념을 다른 클래스로 옮겨주는 변환자 역할을 해요(rationalize, to_a, to_c, to_h, to_r, to_s).
nil에는 명시적인 to_hash 메서드가 없지만, ** 언패킹에 사용할 수 있어요. 키워드 인자를 하나도 추가하지 않는 식으로 동작하죠. 그 밖에 검사용 inspect, 조회용 nil? 메서드도 있어요.
출처: Ruby 4.0 API
본문
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
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로 돌려줘요. eps 인자는 무시돼요.
nil.rationalize # => (0/1)
to_a → []
빈 Array를 돌려줘요.
nil.to_a # => []
to_c → (0+0i)
0을 Complex로 돌려줘요.
nil.to_c # => (0+0i)
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 # => ""