ट्रैक
/
Elixir
Elixir
/
सिलेबस
/
एकाधिक क्लॉज़ वाले फंक्शन
एक

एकाधिक क्लॉज़ वाले फंक्शन में Elixir

72 अभ्यास

एकाधिक क्लॉज़ वाले फंक्शन के बारे में

Elixir में एक ही फंक्शन के कई क्लॉज़ हो सकते हैं। यह फंक्शन के आर्गुमेंट पर पैटर्न मैचिंग और गार्ड के उपयोग से किया जाता है।

# pattern matching the argument
def number(7) do
  "Awesome, that's my favorite"
end

# using a guard
def number(n) when is_integer(n) do
  "That's not my favorite"
end

def number(_n) do
  "That's not even a number!"
end
  • फंक्शन से कंट्रोल लॉजिक अलग करने के लिए कई क्लॉज़ वाले फंक्शन इस्तेमाल कीजिए।
  • क्लॉज़ को सोर्स फाइल में ऊपर से नीचे के क्रम में तब तक आज़माया जाता है जब तक कोई एक सफल न हो जाए।
  • अगर कोई भी सफल न हो, तो BEAM VM एक FunctionClauseError उत्पन्न करता है।
  • अगर आर्गुमेंट वेरिएबलो को फंक्शन के अंदर के कोड में या गार्ड में कहीं भी इस्तेमाल नहीं किया गया हो, तो उनके नाम के आगे _ लगाना चाहिए, वरना कंपाइलर एक चेतावनी देता है।
  • अनॉनिमस फंक्शन में भी कई क्लॉज़ हो सकते हैं।
    fn
      13 -> "Awesome, that's my favorite"
      _ -> "That's not my favorite"
    end
    

ध्यान दीजिए कि कई क्लॉज़ वाले फंक्शन को फंक्शन ओवरलोडिंग से भ्रमित नहीं करना चाहिए, जिसे आप दूसरी प्रोग्रामिंग भाषाओं से जानते होंगे। Elixir में फंक्शन की पहचान सिर्फ उसके नाम और आर्टी से होती है, आर्गुमेंट के टाइप से नहीं (क्योंकि यहाँ स्टैटिक टाइपिंग नहीं होती)। उदाहरण का फंक्शन number/1 एक ही फंक्शन माना जाता है, चाहे उसमें कितने भी क्लॉज़ हों।

GitHub के ज़रिए संपादित करें यह लिंक नई विंडो या टैब में खुलता है।

एकाधिक क्लॉज़ वाले फंक्शन सीखिए

अभ्यास लॉक है

एकाधिक क्लॉज़ वाले फंक्शन पर अभ्यास करने के लिए 10 और अभ्यास अनलॉक कीजिए