1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Lập trình hướng đối tượng với S3 và R6 trong R

Connected

Bài tập

Tạo một phương thức S3 (2)

Nếu không tìm được phương thức phù hợp cho một generic, R sẽ báo lỗi. Ví dụ, hiện tại get_n_elements() chỉ có phương thức cho data.frame. Nếu bạn truyền một ma trận vào get_n_elements(), bạn sẽ thấy lỗi.

> get_n_elements(matrix())
Error: no applicable method for 'get_n_elements' applied to an object of class "c('matrix', 'array', 'logical')"

Thay vì phải viết hàng chục phương thức cho mọi kiểu đầu vào, bạn có thể tạo một phương thức xử lý tất cả các kiểu chưa có phương thức riêng. Đây được gọi là phương thức default; nó luôn có tên generic.default. Ví dụ, print.default() (docs sẽ in bất kỳ kiểu đối tượng nào không có phương thức print() (docs) riêng.

Hướng dẫn

100 XP

Hàm generic get_n_elements() và một phương thức cho data.frame đã được định nghĩa trong không gian làm việc của bạn.

  • Dùng ls.str() (docs) để khám phá không gian làm việc.
  • Viết một phương thức S3 mặc định cho get_n_elements().
    • Tên hàm nên là tên generic, sau đó là một . rồi đến default.
    • Tham số đầu vào nên là x và ....
    • Phần thân hàm chỉ một dòng, trả về số phần tử trong một đối tượng bất kỳ. Dùng cùng kỹ thuật như bài Make it Classy (1) với ván cờ.
  • Gọi phương thức của bạn trên bộ dữ liệu ability.cov (docs) và gán kết quả vào biến n_elements_ability.cov.