Elixir Language
मॉड्यूल
खोज…
टिप्पणियों
मॉड्यूल नाम
अमृत में, IO
या String
जैसे मॉड्यूल नाम केवल हुड के नीचे परमाणु होते हैं और संकलन समय पर :"Elixir.ModuleName"
रूप में परिवर्तित हो जाते हैं।
iex(1)> is_atom(IO)
true
iex(2)> IO == :"Elixir.IO"
true
मॉड्यूल के कार्यों या मैक्रोज़ को सूचीबद्ध करें
__info__/1
फ़ंक्शन निम्न परमाणुओं में से एक लेता है:
-
:functions
- उनके कार्यों के साथ सार्वजनिक कार्यों की एक कीवर्ड सूची लौटाता है -
:macros
- सार्वजनिक मैक्रोज़ की एक कीवर्ड सूची उनके साथ-साथ देता है
Kernel
मॉड्यूल के कार्यों को सूचीबद्ध करने के लिए:
iex> Kernel.__info__ :functions
[!=: 2, !==: 2, *: 2, +: 1, +: 2, ++: 2, -: 1, -: 2, --: 2, /: 2, <: 2, <=: 2,
==: 2, ===: 2, =~: 2, >: 2, >=: 2, abs: 1, apply: 2, apply: 3, binary_part: 3,
bit_size: 1, byte_size: 1, div: 2, elem: 2, exit: 1, function_exported?: 3,
get_and_update_in: 3, get_in: 2, hd: 1, inspect: 1, inspect: 2, is_atom: 1,
is_binary: 1, is_bitstring: 1, is_boolean: 1, is_float: 1, is_function: 1,
is_function: 2, is_integer: 1, is_list: 1, is_map: 1, is_number: 1, is_pid: 1,
is_port: 1, is_reference: 1, is_tuple: 1, length: 1, macro_exported?: 3,
make_ref: 0, ...]
अपने चयन के किसी भी मॉड्यूल से Kernel
को बदलें।
मॉड्यूल का उपयोग करना
अन्य मॉड्यूल में उनका उपयोग करने के लिए मॉड्यूल में चार संबद्ध कीवर्ड हैं: alias
, import
, use
और require
।
alias
एक अलग (आमतौर पर कम) नाम के तहत एक मॉड्यूल पंजीकृत करेगा:
defmodule MyModule do
# Will make this module available as `CoolFunctions`
alias MyOtherModule.CoolFunctions
# Or you can specify the name to use
alias MyOtherModule.CoolFunctions, as: CoolFuncs
end
import
मॉड्यूल में उन सभी कार्यों को उपलब्ध कराएगा जिनके सामने कोई नाम नहीं है:
defmodule MyModule do
import Enum
def do_things(some_list) do
# No need for the `Enum.` prefix
join(some_list, " ")
end
end
use
मॉड्यूल को वर्तमान मॉड्यूल में कोड को इंजेक्ट करने की अनुमति देता है - यह आमतौर पर एक फ्रेमवर्क के हिस्से के रूप में किया जाता है जो आपके मॉड्यूल को कुछ व्यवहार की पुष्टि करने के लिए अपने स्वयं के फ़ंक्शन बनाता है।
मॉड्यूल से लोड मैक्रो की require
ताकि उनका उपयोग किया जा सके।
दूसरे मॉड्यूल में प्रतिनिधि कार्य करना
किसी अन्य मॉड्यूल में परिभाषित समान नाम के कार्यों को सौंपने वाले कार्यों को परिभाषित करने के लिए defdelegate
का उपयोग करें:
defmodule Math do
defdelegate pi, to: :math
end
iex> Math.pi
3.141592653589793