s3_dispatch: Illustrate S3 dispatch

View source: R/dispatch.R

s3_dispatchR Documentation

Illustrate S3 dispatch

Description

s3_dispatch() prints a list of all possible function names that will be considered for method dispatch. There are four possible states:

  • ⁠=>⁠ method exists and is found by UseMethod().

  • ⁠->⁠ method exists and is used by NextMethod().

  • * method exists but is not used.

  • Nothing (and greyed out in console): method does not exist.

Learn more at https://adv-r.hadley.nz/s3.html.

Usage

s3_dispatch(call, env = parent.frame())

Arguments

call

Example call to S3 method

env

Environment in which to evaluate call

Examples

x <- Sys.time()
s3_dispatch(print(x))
s3_dispatch(is.numeric(x))
s3_dispatch(as.Date(x))
s3_dispatch(sum(x))

# Internal vs. regular generic
x1 <- 1
x2 <- structure(2, class = "double")

my_length <- function(x) UseMethod("my_length")
s3_dispatch(my_length(x1))
s3_dispatch(my_length(x2))

length.double <- function(x) 10
s3_dispatch(length(x1))
s3_dispatch(length(x2))

r-lib/sloop documentation built on Nov. 4, 2023, 4:20 a.m.