RosettaCodeData/Task/Classes/Nim/classes.nim

28 lines
643 B
Nim

type MyClass = object
name: int
proc initMyClass(): MyClass =
result.name = 2
proc someMethod(m: var MyClass) =
m.name = 1
var mc = initMyClass()
mc.someMethod()
type
Gender = enum male, female, other
MyOtherClass = object
name: string
gender: Gender
age: Natural
proc initMyOtherClass(name; gender = female; age = 50): auto =
MyOtherClass(name: name, gender: gender, age: age)
var person1 = initMyOtherClass("Jane")
echo person1.name, " ", person1.gender, " ", person1.age # Jane female 50
var person2 = initMyOtherClass("John", male, 23)
echo person2.name, " ", person2.gender, " ", person2.age # John male 23