अमृत कुछ is_
कार्यों अगर एक आइटम एक विशिष्ट प्रकार है आप जाँच करें कि प्रदान करता है:चेक अगर एक मूल्य के एक कीवर्ड सूची
is_atom
is_binary
is_map
- आदि
लेकिन मैं कैसे जांचूं कि कोई मूल्य Elixir में एक कीवर्ड सूची है? मैं समझता हूँ कि नीचे, कीवर्ड सूचियां एक परमाणु के रूप में पहला तत्व के साथ 2-तत्व tuples की एक सूची है, इसलिए मेरे वर्तमान वैकल्पिक हल यह है:
defmodule KList do
def is_keyword?(list) when is_list(list) do
Enum.all? list, fn item ->
case item do
{k, _} -> is_atom(k)
_ -> false
end
end
end
def is_keyword?(_), do: false
end
वहाँ है एक बेहतर (या एक में निर्मित) ऐसा करने का तरीका? और सबसे महत्वपूर्ण बात यह है कि मैं इसे when
खंड में कैसे कर सकता हूं?
आप एक गार्ड खंड में एक कीवर्ड सूची के लिए जाँच करने में सक्षम नहीं होगा। गार्ड में अनुमत अभिव्यक्तियों की एक पूर्वनिर्धारित सूची है। आपको केवल एक ही एक्सटेंशन लिखने की अनुमति है मैक्रोज़ जो उन अनुमत अभिव्यक्तियों तक विस्तारित है। http://elixir-lang.org/docs/master/elixir/guards – mario