Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Elixir 长生不老药&x27;s与函数名一起使用_Elixir_Phoenix Framework - Fatal编程技术网

Elixir 长生不老药&x27;s与函数名一起使用

Elixir 长生不老药&x27;s与函数名一起使用,elixir,phoenix-framework,Elixir,Phoenix Framework,最近我偶然发现了这个代码 defmodule MyAppWeb.PageLive do use MyAppWeb, :live_view 这是Phoenix Live View生成的默认应用程序的一部分(mix phx.new--Live)。 这是我第一次看到使用构造并将函数名作为第二个参数。 我试着在网上搜索一些关于它的文档,但是找不到一个合适的名字 你能帮我理解执行时会发生什么吗 它不使用宏调用\uuuuu,而是调用函数,我不确定是否可以在那里传递一些选项,或者我需要使用“正常”方式(

最近我偶然发现了这个代码

defmodule MyAppWeb.PageLive do
  use MyAppWeb, :live_view
这是Phoenix Live View生成的默认应用程序的一部分(
mix phx.new--Live
)。
这是我第一次看到
使用
构造并将函数名作为第二个参数。
我试着在网上搜索一些关于它的文档,但是找不到一个合适的名字

你能帮我理解执行时会发生什么吗

它不使用宏调用
\uuuuu,而是调用函数,我不确定是否可以在那里传递一些选项,或者我需要使用“正常”方式(使用宏调用
\uuuu)。

我尝试过类似于
使用MyAppWeb,:live\u view,opts
的方法,但这会提高
未定义函数的使用/3
只是一个宏,
使用Mod,args
只是
使用args(args)
的语法糖

它不使用宏调用
\u,而是调用函数[…]

显然是错误的,它使用宏调用了
MyAppWeb.\u

如果您打开(也生成的)
MyAppWeb
,您会发现有点像

defmacro\uuu在原子(which)做什么的时候使用
应用(_模块,其中,[]))
结束

也就是说,您可以直接调用
哪个
,或者修改
MyAppWeb.\uuuu使用\uuuu/1
接受参数。

实际上
MyAppWeb
看起来是这样的:
defmodule MyAppWeb do。。。def live_view do quote do。。。结束。。。结束
哦,该死的。。。我没有滚动到结尾,如果<代码>μsUsIGuangs/1 未定义在<代码> MOD,<代码>使用MOD不编译:),也考虑仔细阅读。use宏在概念上按require、import和alias进行分组,本页对每个宏进行了详细解释。