Defining values also defines getter and setter methods, as illustrated by the next example:
let person = DynamicObject(): define("name", "MrBean"): define("email", "mrbean@gmail.com") # prints "Mr Bean" println(person: name()) # prints "Mr Beanz" person: name("Mr Beanz") println(person: name())
Calling a setter method for a non-existent property defines it, hence the previous example can be rewritten as:
let person = DynamicObject(): name("MrBean"): email("mrbean@gmail.com") # prints "Mr Bean" println(person: name()) # prints "Mr Beanz" person: name("Mr Beanz") println(person: name())