Erlang 21

erl_format




erlang

erl_format

C लाइब्रेरी

erl_format

लाइब्रेरी सारांश

Erlang शब्द बनाएं और मिलान करें।

विवरण

इस मॉड्यूल में दो रूटीन होते हैं: एर्लैंग शब्द बनाने के लिए एक सामान्य कार्य और एर्लैंग शब्दों से मेल खाने वाले पैटर्न के लिए एक।

निर्यात

ETERM *erl_format(FormatStr, ...)

प्रकार

एक प्रारूप विनिर्देशक और तर्कों के संगत सेट का उपयोग करके एरलांग शब्द बनाने के लिए एक सामान्य कार्य, जिस तरह से printf() काम करता है।

FormatStr एक प्रारूप विनिर्देश स्ट्रिंग है। मान्य प्रारूप विनिर्देशक इस प्रकार हैं:

  • ~i - पूर्णांक
  • ~f - अस्थायी बिंदु
  • ~a - परमाणु
  • ~s - स्ट्रिंग
  • ~w - मनमाना Erlang शब्द

FormatStr में शामिल प्रत्येक प्रारूप विनिर्देशक के लिए, FormatStr बाद एक संगत तर्क होना चाहिए। एक Erlang शब्द का निर्माण मानों के साथ FormatStr अनुसार किया जाता है और Erlang शब्दों को संगत तर्कों से प्रतिस्थापित किया जाता है, और अलग-अलग प्रारूप निर्दिष्टकर्ताओं के अनुसार। उदाहरण के लिए:

erl_format("[{name,~a},{age,~i},{data,~w}]",
           "madonna",
           21,
           erl_format("[{adr,~s,~i}]","E-street",42));

यह (ETERM *) शब्द [{name,madonna},{age,21},{data,[{adr,"E-street",42}]}] अनुरूप संरचना (ETERM *) बनाता है।

फ़ंक्शन एक Erlang शब्द देता है, या NULL यदि FormatStr एक वैध Erlang शब्द का वर्णन नहीं करता है।

int erl_match(Pattern, Term)

प्रकार

इस फ़ंक्शन का उपयोग एर्लैंग में किए गए पैटर्न के समान मिलान करने के लिए किया जाता है। मिलान नियमों और अधिक उदाहरणों के लिए, इरलांग संदर्भ नियमावली में अनुभाग Pattern Matching देखें।

  • Pattern एक एर्लैंग शब्द है, जिसमें संभवतः अनबाउंड वैरिएबल होते हैं।
  • Term एक एर्लैंग टर्म है जिसे हम Pattern खिलाफ मैच करना चाहते हैं।

Term और Pattern की तुलना की जाती है और Pattern में किसी भी अनबाउंड वैरिएबल Term में संबंधित मानों से बंधे होते हैं।

यदि Term और Pattern का मिलान किया जा सकता है, तो फ़ंक्शन गैर-शून्य मान लौटाता है और Pattern में किसी भी अनबाउंड चर को बांधता है। यदि Term और Pattern मेल नहीं खाते हैं, तो 0 लौटा दिया जाता है। उदाहरण के लिए:

ETERM *term, *pattern, *pattern2;
term1    = erl_format("{14,21}");
term2    = erl_format("{19,19}");
pattern1 = erl_format("{A,B}");
pattern2 = erl_format("{F,F}");
if (erl_match(pattern1, term1)) {
  /* match succeeds:
   * A gets bound to 14, 
   * B gets bound to 21 
   */
  ...  
}
if (erl_match(pattern2, term1)) {
  /* match fails because F cannot be 
   * bound to two separate values, 14 and 21
   */
  ...
}
if (erl_match(pattern2, term2)) {
  /* match succeeds and F gets bound to 19 */
  ...
}

erl_var_content() लिए कॉल के परिणामस्वरूप बाध्य किसी भी चर की सामग्री को पुनः प्राप्त करने के लिए इस्तेमाल किया जा सकता है।