Elixir Language
モジュール
サーチ…
備考
モジュール名
Elixirでは、 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
他のモジュールで使用するための4つの関連キーワードがあり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