1. 学ぶ
  2. /
  3. コース
  4. /
  5. R에서 S3와 R6로 배우는 Object-Oriented Programming

Connected

演習

프리미티브 제네릭 함수

R의 일부 핵심 기능은 성능상의 이유로 C 코드를 특별한 방식으로 호출하는 프리미티브(primitive) 함수로 정의됩니다. 프리미티브 함수의 예로는 if와 for 같은 언어 요소, +와 $ 같은 연산자, exp와 sin 같은 수학 함수가 있어요. 프리미티브 함수 중에는 S3 제네릭도 포함되며, S3 프리미티브 제네릭의 전체 목록은 .S3PrimitiveGenerics(문서)로 확인할 수 있습니다.

S3 제네릭이 프리미티브일 때는 메서드를 찾는 조회 과정이 조금 다르게 동작합니다. R은 일반적으로처럼 class(문서)를 사용해 메서드를 찾지만, 아무것도 찾지 못하면 내부 C 코드 함수가 호출됩니다. (일반 제네릭은 메서드를 찾지 못하면 오류가 발생하는 것과 대조적이에요.) 이는 객체의 클래스를 오버라이드하더라도 길이를 계산하는 것과 같은 근본적인 동작이 깨지지 않음을 의미합니다.

指示

100 XP

클래스가 "hairstylist"로 오버라이드된 리스트 객체가 작업 공간의 변수 hair에 할당되어 있습니다.

  • str()(문서)로 hair의 구조를 확인하세요.
  • R이 알고 있는 모든 S3 프리미티브 제네릭을 나열하세요.
  • exists()(문서) 함수를 사용해 length.hairstylist라는 이름의 함수가 존재하지 않음을 확인하세요. 이 함수는 문자열 입력을 받는다는 점에 유의하세요.
  • hair 변수의 length()(문서)를 계산하세요.