Bắt đầu ngayBắt đầu miễn phí

Rất “Classy”

Biến có thể có nhiều hơn một lớp. Khi đó, class() (tài liệu) sẽ trả về một vector ký tự có độ dài lớn hơn 1.

Tương tự, bạn có thể gán nhiều lớp bằng cách gán một vector ký tự cho class(). Hãy sắp xếp các lớp theo thứ tự từ cụ thể nhất đến tổng quát hơn từ trái sang phải, vì bạn muốn bắt đầu với hành vi phù hợp nhất cho đối tượng của mình. Ví dụ:

x <- c("a", "e", "i", "o", "u")
class(x) <- c("vowels", "letters", "character")

Bạn có thể kiểm tra các lớp khác bằng hàm đa dụng inherits() (tài liệu). Ví dụ:

inherits(x, "vowels")

Bài tập này là một phần của khóa học

Lập trình hướng đối tượng với S3 và R6 trong R

Xem khóa học

Hướng dẫn bài tập

Biến kitty đã được định nghĩa sẵn trong workspace của bạn.

  • Xem kitty bằng cách gõ tên của nó.
  • Gán các lớp "cat", "mammal", và "character" cho biến kitty.
  • Kiểm tra rằng kitty có các lớp "cat", rồi "mammal", rồi "character" (lần lượt, theo thứ tự đó) bằng inherits().
  • Kiểm tra rằng kitty vẫn là một vector ký tự bằng is.character().
  • Kiểm tra rằng kitty không có lớp "dog".

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# View the kitty
kitty

# Assign classes
___ <- ___

# Does kitty inherit from cat/mammal/character?
inherits(___, "___")
___
___

# Is kitty a character vector?
___

# Does kitty inherit from dog?
___
Chỉnh sửa và Chạy Mã