idb*_*rii 10 vim variadic-functions
我想为插件的函数编写一个包装器,但它使用了varargs(...).如何将我的函数接收的相同参数传递给插件的函数?
例:
function! PluginInterface(...)
for i in a:000
echo i
endfor
endfunction
function! MyInterface(...)
echo a:1 . ' is great'
call PluginInterface(a:000)
endfunction
echo '>> Their call'
call PluginInterface('hello', 'world')
echo '>> My call'
call MyInterface('hello', 'world')
Run Code Online (Sandbox Code Playgroud)
idb*_*rii 20
而不是直接调用函数(call PluginInterface(a:000)),使用call():
call call("PluginInterface", a:000)
call call(function("PluginInterface"), a:000)
Run Code Online (Sandbox Code Playgroud)
(这看起来很奇怪,但是它call()是一个函数,所以你仍然必须用它:call或者let x =接受它的东西作为前缀expr.)
见:help call().