Vim 8.0 で強化された機能 辞書関数
さて、以前の辞書関数は次のように call()
と辞書を経由して呼び出す必要がありました。
let s:dict = { "value" : 0 } function! s:dict.up() let self.value += 1 return self.value endfunction let s:f = s:dict.up echo call(s:f, [], s:dict) " => 1 echo call(s:f, [], s:dict) " => 2 echo call(s:f, [], s:dict) " => 3
Vim 8.0 ではこの縛りが緩和されて、辞書関数を直接呼び出すことができるようになりました。
let s:dict = { "value" : 0 } function! s:dict.up() let self.value += 1 return self.value endfunction let s:f = s:dict.up echo s:f() " => 1 echo s:f() " => 2 echo s:f() " => 3
めちゃくちゃ便利…。