new2: Alternative S4 Constructor

View source: R/utils.R

new2R Documentation

Alternative S4 Constructor

Description

An alternative version of new to create objects based on a list of values.

Usage

new2(class, ...)

Arguments

class

Class name to instanciate

...

extra arguments from which slot values are extracted by exact matching of names.

Value

An S4 object.

Examples


setClass('A', contain='character', representation(x='numeric', y='character'))

# identical behaviour with standard calls
identical(new('A'), new2('A'))
identical(new('A', x=1), new2('A', x=1))

# but if passing that are names not slots 
identical(new('A'), new2('A', b=1))
identical(new('A', x=1), new2('A', x=1, b=3))
identical(new('A', x=1), new2('A', x=1, b=3))

# standard `new` would coerce first unnamed argument into parent of 'A' (i.e. 'character') 
new('A', list(x=1))
new('A', list(x=1, y='other'))
# `new2` rather use it to initialise the slots it can find in the list 
identical(new('A', x=1), new2('A', list(x=1)))
identical(new('A', x=1, y='other'), new2('A', list(x=1, y='other')))



renozao/pkgmaker documentation built on May 3, 2023, 6:04 p.m.