BaşlayınÜcretsiz başlayın

Next Method'u Yazmak

Nesnelerin birden fazla sınıfı olduğunda, bu sınıfların birkaçına ait yöntemleri çağırmak isteyebilirsin. Bu, NextMethod() (docs) kullanılarak yapılır.

S3 yöntemleri artık şu biçimdedir:

an_s3_method.some_class <- function(x, ...)
{
  # some_class üzerinde işlem yap, sonra
  NextMethod("an_s3_method")
}

Yani, yöntemin son satırı NextMethod() olmalıdır.

Bu egzersiz, kursun bir parçasıdır

R'de S3 ve R6 ile Nesne Yönelimli Programlama

Kursa Göz Atın

Egzersiz talimatları

kitty değişkeni ve what_am_i() genel (generic) işlevi çalışma alanında önceden tanımlandı.

  • Çalışma alanını ls.str() ile incele.
  • what_am_i() için cat yönteminin tanımını tamamla.
    • "I'm a cat" diyen bir message() (docs) yaz.
    • Genel işlevin adını bir string olarak geçirerek NextMethod() (docs) çağır.
  • what_am_i() için bir mammal yöntemi tanımla.
    • Argümanlar cat yöntemiyle aynıdır.
    • "I'm a mammal" diyen bir message() yaz.
    • NextMethod() çağır.
  • what_am_i() için bir character yöntemi tanımla.
    • Argümanlar cat yöntemiyle aynıdır.
    • "I'm a character vector" diyen bir message() yaz.
    • NextMethod() çağırma.
  • Tüm üç iletinin gösterildiğini doğrulamak için what_am_i() işlevini kitty ile çağır.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# Inspect your workspace
ls.str()

# cat method
what_am_i.cat <- function(x, ...)
{
  # Write a message
  ___
  # Call NextMethod
  ___
}

# mammal method
___ <- ___

# character method
___ <- ___

# Call what_am_i()
___
Kodu Düzenle ve Çalıştır