2012-07-28 19 views
9

मैं प्लगइन के फ़ंक्शन पर एक रैपर लिखना चाहता हूं, लेकिन यह varargs (...) का उपयोग करता है। मैं अपने फ़ंक्शन को प्लगइन के फ़ंक्शन पर प्राप्त वही तर्क कैसे पास कर सकता हूं?मैं विस्क्रिप्ट में किसी अन्य फ़ंक्शन में 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') 

उत्तर

17

इसके बजाय समारोह को सीधे फ़ोन (call PluginInterface(a:000)) की, call() का उपयोग करें:

call call("PluginInterface", a:000) 
call call(function("PluginInterface"), a:000) 

(यही कारण है कि अजीब लगता है, लेकिन call() एक समारोह है ताकि आप अभी भी अवश्य लगा दें करने के लिए है :call या let x = या expr स्वीकार करने वाला कुछ।)

:help call() देखें।

संबंधित मुद्दे

 संबंधित मुद्दे