small tutorial on objects and references in nim
You declare an object in nim with a type statement. This is very much the same as a struct in C/C++
# an object type Person = object name : string age : int
To create objects you use the name of object to create it. You can initialize variables or not.
# make an empty object let p1 = Person() # make an object with values let p2 = Person(name: "tony", age:54) # print it echo(p2)
To access a field contained in the object use the
. to get the field value.
# access the age echo("just the age:", p2.age)
nim has something called a traced reference. Presumably the traced part is referring to a garbage collector.
You declare a reference in a type section as seen below.
Once you have done that you can access the fields in the object that is pointed to with the
# make a new type that points to a Person type pPerson = ref Person # point pp2 to p2 let pp2 = p2 # print from the ref echo(pp2) # print a field from the ref echo("just the age from ref", pp2.age)