ソフトウェアエンジニアの日常の雑記

日々思ったことをまとめます

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とか... それは次回。