オブジェクト指向
vimスクリプトでプロトタイプベースの書き方が出来たとは。
試しに今回は複素数オブジェクトを作ってみる。
let Complex={} function Complex.new(r,i) dict let obj=copy(self) let obj.real=a:r let obj.img=a:i return obj endfunction function Complex.add(other) dict let obj=copy(self) let obj.real=self.real+a:other.real let obj.img=self.img+a:other.img return obj endfunction function Complex.to_s() dict return (self.real).'+'.(self.img).'i' endfunction
以上をcomplex.vimに保存して、以下のコマンドを順に実行。
:so complex.vim :let a=Complex.new(1,2) :let b=Complex.new(3,4) :echo a.add(b).to_s()
すると、4+6iが表示される。