View source: R/lifecycle-deprecated.R
switch_type | R Documentation |
switch_type()
is equivalent to
switch(type_of(x, ...))
, while
switch_class()
switchpatches based on class(x)
. The coerce_
versions are intended for type conversion and provide a standard
error message when conversion fails.
switch_type(.x, ...)
coerce_type(.x, .to, ...)
switch_class(.x, ...)
coerce_class(.x, .to, ...)
.x |
An object from which to dispatch. |
... |
Named clauses. The names should be types as returned by
|
.to |
This is useful when you switchpatch within a coercing
function. If supplied, this should be a string indicating the
target type. A catch-all clause is then added to signal an error
stating the conversion failure. This type is prettified unless
|
switch_type(3L,
double = "foo",
integer = "bar",
"default"
)
# Use the coerce_ version to get standardised error handling when no
# type matches:
to_chr <- function(x) {
coerce_type(x, "a chr",
integer = as.character(x),
double = as.character(x)
)
}
to_chr(3L)
# Strings have their own type:
switch_type("str",
character = "foo",
string = "bar",
"default"
)
# Use a fallthrough clause if you need to dispatch on all character
# vectors, including strings:
switch_type("str",
string = ,
character = "foo",
"default"
)
# special and builtin functions are treated as primitive, since
# there is usually no reason to treat them differently:
switch_type(base::list,
primitive = "foo",
"default"
)
switch_type(base::`$`,
primitive = "foo",
"default"
)
# closures are not primitives:
switch_type(rlang::switch_type,
primitive = "foo",
"default"
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.