2012-01-16 19 views
7

नामस्थान सूजन से बचने के लिए, मैं संकुल का उपयोग करता हूं। उदाहरण के लिए, Foo रहने दो एक पैकेज में एक समारोह FooPackageक्या मैं प्रत्येक समारोह में स्पष्ट रूप से आयात करने के बिना विश्व स्तर पर नामस्थान आयात कर सकता हूं?

function Foo() 
    disp('Foo'); 
end 

मैं Bar नामक एक अन्य समारोह में इस समारोह का उपयोग करना चाहते कहा जाता है।

function Bar() 
    InFunc1(); 
    InFunc2(); 
    InFunc3(); 
end 

यह फ़ंक्शन उप-फ़ंक्शंस को कॉल करता है। अनुभवहीन तरह से प्रत्येक कॉल में कहने के लिए स्पष्ट रूप से पैकेज का नाम

function InFunc1() 
    FooPackage.Foo(); 
end 

function InFunc2() 
    FooPackage.Foo(); 
end 

function InFunc3() 
    FooPackage.Foo(); 
end 

वैकल्पिक रूप से मैं हर समारोह में एक आयात का उपयोग कर सकते है:

function InFunc1() 
    import FooPackage.* 
    Foo(); 
end 

function InFunc2() 
    import FooPackage.* 
    Foo(); 
end 

function InFunc3() 
    import FooPackage.* 
    Foo(); 
end 

तरीकों में से दोनों थकाऊ रहे हैं। here में जवाब कहता है कि ये एकमात्र तरीके हैं। क्या किसी के पास बेहतर सुझाव है?

+1

शायद आप निर्देशिका 'निजी' का उपयोग कर अपनी समस्या का समाधान कर सकते हैं? – Oli

उत्तर

4

शायद आप private निर्देशिका का उपयोग कर सकते हैं। private निर्देशिका में फ़ंक्शंस केवल अपनी मूल निर्देशिका में फ़ंक्शंस द्वारा देखा जा सकता है, और उन्हें केवल उनके नाम से ही बुलाया जा सकता है।

यह एक पूरी तरह से संतोषजनक समाधान नहीं है, लेकिन इससे मदद मिल सकती है।

+0

इस तथ्य को ध्यान में रखते हुए कि आपका उत्तर केवल एकमात्र है, मैं इसे स्वीकार करूंगा, हालांकि, जैसा कि आपने स्वयं कहा है, अगर पूरा नहीं हुआ है। –

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