在控制台中定义一个模块会产生一些数字集合,其中包含模块的功能和所需的参数数量:
defmodule HotelRoom do
def book(%{name: name, age: age}) when age < 25, do: IO.puts "#{name}, you are too young"
def book(%{name: name, age: age}) when age >= 30, do: IO.puts "#{name},you are 30 years old"
def book(person), do: IO.puts "Your name is #{person.name}"
end
#=> {:module, HotelRoom,
<<70, 79, 82, 49, 0, 0, 8, 120, 66, 69, 65, 77, 69, 120, 68,99, 0, 0, 0,
150, 131, 104, 2, 100, 0, 14, 101, 108, 105, 120, 105, 114, 95, 100,
111, 99, 115, 95, 118, 49, 108, 0, 0, 0, 4, 104, 2, ...>>, {:book, 1}}
这是什么意思,我应该关心它吗?
答案 0 :(得分:3)
这是模块的二进制内容。通常你不用担心它。
此宏定义了一个模块,其中包含给定别名作为其名称 给定的内容。它返回一个包含四个元素的元组:
- :模块
- 模块名称
- 模块的二进制内容
- 评估内容块的结果
http://elixir-lang.org/docs/v1.1/elixir/Kernel.html#defmodule/2