nim tutorial part2 (1) memo [objects]
本家はこちら
つづき
nim チュートリアル part2 のメモ
objects
nimは最小限のOOP(オブジェクト指向)をサポートしている。
type
Person = ref object of RootObj #
name*: string # *がつくと public
age: int # * ないと private?
Student = ref object of Person
id: int # with and id field
var
student: Student
person: Person
sample: int
student = Student(name: "Anton" , age: 5,id: 2)
person = Person(name: "sample" , age: 10)
echo student[]
# echo student -> これはエラーになる
echo person[]
classはないが、object型をrefすることで同じようなことはできる。
*のありなしで、public/privateをわけている。継承もできるが、多重継承はサポートしていない。ここらへんはPythonと異なる。
type
っていうのがあるので、お気づきかもだが、いくつか型を指定できる。enumとかobject とか ref objectとか...
それは次回。