Wenn ich eine Klasse namens foo
habe, ist es einfach, die Funktion summary
zu überladen
Allerdings funktioniert diese Technik nicht mit der Funktion sd
, das heißt
Was ist der richtige Weg, um diese Funktion zu überlasten?
Sie können jede nicht generische Funktion übernehmen, sie generisch machen (S3) und die Originalversion als Standardversion festlegen. Zum Beispiel:
%Vor% Ein letzter Schritt, wenn dies in einem Paket ist, ist das Hinzufügen eines ...
-Arguments zu sd.default
, um die Übergabe von Paketprüfungen zu ermöglichen:
geben:
%Vor%Dies ergibt dann das gewünschte Verhalten:
%Vor%Dies ist in Abschnitt 7.1 des Schreibens dokumentiert R Extensions Handbuch
Sehen Sie sich den Code von sd()
an - er wird effektiv intern versendet. Mit anderen Worten, es ist keine generische Funktion, sondern eine einfache alte reguläre Funktion.
Am einfachsten ist es vielleicht, sd()
zu ändern, um auf Klasse foo zu verzweigen.