Ruby에 kind_of? / instance_of? / is_a? 의 차이점


kind_of? / instance_of? / is_a?가 어떻게 다른지, 언제 쓰는지 알고 싶습니다.

  • 2016년 02월 23일에 작성됨

조회수 359


1 답변


좋아요
0
싫어요
채택취소하기

kind_of?is_a?는 같습니다.

kind_of / is_a

classobj의 클래스인 경우, 혹은 classobj의 superclass거나ㅓ obj에 포함되어 있는 모듈인 경우 true를 return합니다.

instance_of?

객체가 정확히 해당 클래스의 instance일때만 true를 return합니다. (상속에서도 false)

예를들면

puts 5.is_a? Integer #true
puts 5.kind_of? Integer #true
puts 5.instance_of? Integer #false

출처 - ruby-doc :

kind_of?

  • kind_of?(class) → true or false

Returns true if class is the class of obj, or if class is one of the superclasses of obj or modules included in obj.

is_a?

  • is_a?(class) → true or false

Returns true if class is the class of obj, or if class is one of the superclasses of obj or modules included in obj.

instance_of?

  • instance_of?(class) → true or false

Returns true if obj is an instance of the given class. See also Object#kind_of?.

  • 2016년 02월 23일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close