कहें कि मेरे पास 2 तर्कों के साथ एक फ़ंक्शन, dummy
है। फंक्शन कॉल में उपलब्ध नहीं होने पर तर्कों में डिफ़ॉल्ट मान हो सकते हैं। लेकिन मुझे कैसे पता चलेगा कि एक तर्क प्रदान नहीं किया जाता है?फ़ंक्शन कॉल में कोई तर्क प्रदान करने के तरीके की जांच कैसे करें?
मैं जानता हूँ कि मैं nargin
उपयोग कर सकते हैं, इस
function dummy(arg1, arg2)
if nargin < 2
arg2 = 0;
end
if nargin < 1
arg1 = 0;
end
% function body
मैं जानना चाहता हूँ कि क्या मैं जाँच कर सकते हैं एक तर्क तर्क नाम के आधार पर आपूर्ति की है कि क्या चाहते हैं की तरह? कुछ supplied(arg2) == false
की तरह कुछ।
मैं यह पूछता हूं क्योंकि, कभी-कभी मैं तर्क सूची के सामने नए तर्क जोड़ना चाहता हूं (क्योंकि इसमें डिफ़ॉल्ट मान नहीं हो सकता है), और फिर मुझे सभी if nargin ...
बदलना होगा। अगर मैं नाम से जांच सकता हूं, तो कुछ भी नहीं बदला जाना चाहिए।
यह nargin तुलना में काफी बेहतर है, क्योंकि आप की जरूरत नहीं है मामले में कोड बदलने के लिए आप कभी भी परिवर्तन समारोह में पैरामीटर का क्रम। –
मैं आमतौर पर '... | भी जोड़ता हूं isempty (arg1) ', तो उपयोगकर्ता 'arg1' छोड़ सकता है, लेकिन' arg2' की आपूर्ति करें। बेशक अगर 'arg1' खाली नहीं हो सकता है। – yuk
अपमानजनक, लेकिन मैंने सोचा कि यह वास्तव में सवाल का जवाब नहीं दे रहा था। वैसे भी, मैंने जवाब संपादित किया, मुझे लगता है कि अगर आपको 'arg1' मौजूद नहीं है तो कोई त्रुटि नहीं है, यह सुनिश्चित करने के लिए आपको '||' (शॉर्ट-सर्किट ऑपरेटर) का उपयोग करना होगा। – Oli