给我一个模块:
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
最佳答案 Elixir是一种编译语言.在运行时,源代码不再存在,它已被编译为BEAM字节代码.在运行时,函数没有源级表示,供您检查或检索代码.