खोज…


टिप्पणियों

मॉड्यूल नाम

अमृत में, 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


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow