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())