Hatena::Groupvim

[script]関数を実行する

[script]関数を実行する

関数を実行するには、評価されるとき以外は call を使って明示的に呼び出さなければならない。

つまり

" 評価されてるので関数が実行され結果の値が入る
let foo = ExampleFunc()
if( ExampleFunc() == 10 ) | endif
" 関数の引数として渡したときも評価される
echo ExampleFunc2(ExampleFunc())
" これはダメ
ExampleFunc()
" こうしなくてはならない
call ExampleFunc()

となる。

また文字列や変数を使って関数を呼び出した良い場合、{} を使う(see h: curly-braces-names )

function! s:foobarfunc()
  echo 'foobarfunc'
endfunction

call s:foo{'bar'}func()
let str = ':foo'
call s{str}barfunc()