有没有办法可以在Elixir中返回函数定义

时间:2016-02-04 15:23:42

标签: elixir

给我一​​个模块:

defmodule Foo do
  def bar(baz) do
    IO.puts baz
  end
end

我有什么方法可以回复:

def bar(baz) do
  IO.puts baz
end

我已经知道我可以加载模块的整个定义:

Foo.__info__(:compile) |> List.last |> elem(1) |> File.read |> elem(1)

但理想情况下,我很乐意做一些像

这样的事情
Foo.bar/1.__definition__
#=> def bar(baz) do\n  IO.puts baz\nend\d

1 个答案:

答案 0 :(得分:1)

Elixir是一种编译语言。在运行时,源代码不再存在,它已被编译为BEAM字节代码。在运行时,函数没有源级表示,供您检查或检索代码。

相关问题