A key-value store for R6::R6 objects. On retrieval of an object, the following applies:
If the object is a R6ClassGenerator, it is initialized with new().
If the object is a function, it is called and must return an instance of a R6::R6 object.
If the object is an instance of a R6 class, it is returned as-is.
Default argument required for construction can be stored alongside their constructors by passing them to $add().
as.data.table(d)
Dictionary -> data.table::data.table()
Converts the dictionary to a data.table::data.table().
items(environment())
Stores the items of the dictionary
new()Construct a new Dictionary.
Dictionary$new()
...(ignored).
keys()Returns all keys which comply to the regular expression pattern.
If pattern is NULL (default), all keys are returned.
Dictionary$keys(pattern = NULL)pattern(character(1)).
character() of keys.
has()Returns a logical vector with TRUE at its i-th position if the i-th key exists.
Dictionary$has(keys)keys(character()).
get()Retrieves object with key key from the dictionary.
Additional arguments must be named and are passed to the constructor of the stored object.
Dictionary$get(key, ..., .prototype = FALSE)key(character(1)).
...(any)
Passed down to constructor.
.prototype(logical(1))
Whether to construct a prototype object.
Object with corresponding key.
mget()Returns objects with keys keys in a list named with keys.
Additional arguments must be named and are passed to the constructors of the stored objects.
Dictionary$mget(keys, ...)keys(character()).
...(any)
Passed down to constructor.
Named list() of objects with corresponding keys.
add()Adds object value to the dictionary with key key, potentially overwriting a previously stored item.
Additional arguments in ... must be named and are passed as default arguments to value during construction.
Dictionary$add(key, value, ..., .prototype_args = list())key(character(1)).
value(any).
...(any)
Passed down to constructor.
.prototype_args(list())
List of arguments to construct a prototype object.
Can be used when objects have construction arguments without defaults.
Dictionary.
keys(character())
Keys of objects to remove.
Dictionary.
prototype_args()Returns the arguments required to construct a simple prototype of the object.
Dictionary$prototype_args(key)key(character(1))
Key of object to query for required arguments.
list() of prototype arguments
clone()The objects of this class are cloneable with this method.
Dictionary$clone(deep = FALSE)deepWhether to make a deep clone.
library(R6)
item1 = R6Class("Item", public = list(x = 1))
item2 = R6Class("Item", public = list(x = 2))
d = Dictionary$new()
d$add("a", item1)
d$add("b", item2)
d$add("c", item1$new())
d$keys()
d$get("a")
d$mget(c("a", "b"))
Run the code above in your browser using DataLab