2011-05-26 10 views

उत्तर

34

दस्तावेज़ों से, ऐसा लगता है कि तर्कों में विम स्क्रिप्ट में डिफ़ॉल्ट मान नहीं हो सकते हैं। हालांकि, अगर आप उन तक पहुँच की बहस के चर संख्या के साथ एक समारोह को परिभाषित करने, और a:n के माध्यम से अतिरिक्त तर्क की संख्या और a:1 निर्धारित करने के लिए a:0 का उपयोग करके इस का अनुकरण कर सकते हैं:

function Foo(bar, ...) 
    if a:0 > 0 
    let xyzzy = a:1 
    else 
    let xyzzy = 0 
    end 
endfunction 
+5

टर्नरी कथन का उपयोग करके एक छोटा संस्करण: 'l l: xyzzy = a: 0> 0? ए: 1: 0'। – wting

1

आप में एक बहस का चयन करने के get उपयोग कर सकते हैं विशिष्ट स्थिति या डिफ़ॉल्ट मान यदि यह मौजूद नहीं है।

function! Foo(bar, ...) 
    let baz = get(a:, 1, 0) 
endfunction 
संबंधित मुद्दे