我想为插件的函数编写一个包装器,但它使用了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')
答案 0 :(得分:18)
不要直接调用函数(call PluginInterface(a:000)
),而是使用call()
:
call call("PluginInterface", a:000)
call call(function("PluginInterface"), a:000)
(看起来很奇怪,但call()
是一个功能,所以你仍然需要在:call
或let x =
或接受expr
的东西前加上它。)
请参阅:help call()
。