Phoenix.Router手册页states:
scope(path, options, list)
使用给定路径定义范围。
此功能是:
的快捷方式scope path: path do
...
end
此宏调用中的一个参数是options
。我认为该列表是以do
开头并以end
结尾的部分。有人可以解释options
扩展到哪里?
答案 0 :(得分:1)
是的,这里的list
是一个包含[do: block]
的单元素列表,其中block
是do ... end
中的代码。这里的文档不是很清楚,但您可以read the source更好地理解这一点。
简而言之,如果选项是列表,path
会插入options
,所以:
scope(path, options, list)
相当于
scope([path: path] ++ options, list)
如果options
是一个列表,并且相当于
scope([path: path, alias: options], list)
如果options
是一个原子(被视为范围'别名)。
参数在文档中被命名为list
的原因是函数顶部没有函数头声明,这使ex_doc推断出一个名称,并选择使用{{1}因为函数接受列表list
作为最后一个参数。您可以阅读有关此here的更多信息。