반응형
Ruby 클래스가 다른 클래스의 하위 클래스인지 테스트
저는 한 클래스가 다른 클래스에서 상속되는지 테스트하고 싶지만, 그것을 위한 방법이 없는 것 같습니다.
class A
end
class B < A
end
B.is_a? A
=> false
B.superclass == A
=> true
제가 원하는 것의 간단한 구현은 다음과 같습니다.
class Class
def is_subclass_of?(clazz)
return true if superclass == clazz
return false if self == Object
superclass.is_subclass_of?(clazz)
end
end
하지만 이미 존재할 것으로 예상합니다.
그냥 연산자를 사용하세요.
B < A # => true
A < A # => false
또는 를 사용합니다.<=교환입니다.
B <= A # => true
A <= A # => true
사용 가능:
B.ancestors.include? A
이것은 의 (짧은) 대답과 약간 다릅니다.B < A왜냐면B에 포함됨B.ancestors:
B.ancestors
#=> [B, A, Object, Kernel, BasicObject]
B < B
#=> false
B.ancestors.include? B
#=> true
이 방법이 바람직한지 여부는 사용 사례에 따라 달라집니다.
언급URL : https://stackoverflow.com/questions/4545518/test-whether-a-ruby-class-is-a-subclass-of-another-class
반응형
'programing' 카테고리의 다른 글
| tinyMCE 크기 조정 토글 제거/사용 안 함 (0) | 2023.06.08 |
|---|---|
| 소켓의 차이점은 무엇입니까?IO 및 Firebase? (0) | 2023.06.08 |
| Flask 앱을 디버그하는 방법 (0) | 2023.06.08 |
| 요청 본문 유형을 요청과 호환되도록 만드는 방법Initior Body노드 페치를 사용할 때 초기화? (0) | 2023.06.08 |
| 저장 프로시저에서 이 Oracle SQL Developer 아이콘은 무엇을 의미합니까? (0) | 2023.06.08 |