ट्रैक
/
Elixir
Elixir
/
सिलेबस
/
पैटर्न मैचिंग
पै

पैटर्न मैचिंग में Elixir

73 अभ्यास

पैटर्न मैचिंग के बारे में

Elixir में फंक्शन लिखते समय हम दृढ़ शैली का इस्तेमाल पैटर्न मैचिंग के साथ कर सकते हैं:

def read_file() do
  {:ok, contents} = File.read("hello.txt")
  contents
end
  • पैटर्न मैचिंग स्पष्ट रूप से मैच ऑपरेटर =/2 की मदद से की जाती है।

    • मैच तब सफल होते हैं जब ऑपरेटर के बाईं ओर मौजूद डेटा का आकार दाईं ओर से मेल खाता है।

    • मैच सफल होने पर बाईं ओर के वेरिएबल दाईं ओर की वैल्यू से बाँध दिए जाते हैं।

    • अंडरस्कोर _ का इस्तेमाल करके हम उन जगहों की वैल्यू को अनदेखा कर सकते हैं।

      {:ok, number, _} = {:ok, 5, [4.5, 6.3]}
      number
      # => 5 is bound to this variable
      
    • पिन ऑपरेटर ^ की मदद से हम किसी वेरिएबल को दोबारा बाँधे जाने से रोक सकते हैं और उसकी पहले से मौजूद वैल्यू के साथ पैटर्न मैच कर सकते हैं।

      number = 10
      {:ok, ^number, _} = {:ok, 5, [4.5, 6.3]}
      # => ** (MatchError) no match of right hand side value: {:ok, 5, [4.5, 6.3]}
      
  • पैटर्न मैच फंक्शन क्लॉज़ के हेड में भी हो सकते हैं, ताकि सिर्फ वही आर्गुमेंट फंक्शन को कॉल करें जो पैटर्न से मेल खाते हैं।

  • फंक्शन क्लॉज़ के पैटर्न मैच में वेरिएबल बाँधे जा सकते हैं।

    defmodule Example do
      def named_function(:a = atom_variable) do
        {atom_variable, 1}
      end
    end
    
    Example.named_function(:a)
    # => {:a, 1}
    # The first function clause matches, so it is invoked
    
    Example.named_function(:b)
    # => ** (FunctionClauseError) no function clause matching in Example.named_function/1
    
GitHub के ज़रिए संपादित करें यह लिंक नई विंडो या टैब में खुलता है।

पैटर्न मैचिंग सीखिए

अभ्यास लॉक है

पैटर्न मैचिंग पर अभ्यास करने के लिए 10 और अभ्यास अनलॉक कीजिए