定义模块后控制台的输出意味着什么?

时间:2015-11-29 18:20:03

标签: elixir

在控制台中定义一个模块会产生一些数字集合,其中包含模块的功能和所需的参数数量:

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}}

这是什么意思,我应该关心它吗?

1 个答案:

答案 0 :(得分:3)

这是模块的二进制内容。通常你不用担心它。

  

此宏定义了一个模块,其中包含给定别名作为其名称   给定的内容。它返回一个包含四个元素的元组:

     
      
  • :模块
  •   
  • 模块名称
  •   
  • 模块的二进制内容
  •   
  • 评估内容块的结果
  •   

http://elixir-lang.org/docs/v1.1/elixir/Kernel.html#defmodule/2