在Ruby中,可以使用splat来实现
[*1..5]
# => [1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
如何在Elixir中完成?
我知道我可以使用,reduce但也许有一种更简单的方法?
我正在尝试编写一组宏,所有这些都必须依赖于相同模块的知识,因此,我试图避免将此模块明确地传递给每个函数(我实际上这样做很好,但是当我正在学习语言时,我正试图探索所有可能性!).
所以我正在写(目标是访问SomeOtherModule或调用SomeOtherModule.foo生成的foo函数内部.)
defmodule MacrosUser do
use MyMacros, SomeOtherModule
end
defmodule MyMacros do
defmacro __using__(opts) do
{:__aliases__, _, module_path} = opts
quote do
def foo do
module_path
|> Enum.join(".")
|> apply(:foo, [])
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
但是这显然不像apply/3预期的模块那样工作,也不是模块名称的字符串或符号表示.
基本上,正如标题所说,我正在寻找一些方法来使它对于给定的字符串或符号它将访问相应的模块或调用该模块的功能.
此外,我知道可以通过__MODULE__宏访问当前模块,但我正在寻找一种方法来访问任何现有模块,而不仅仅是当前模块.
也许我从浏览器的开发工具中问了太多但是......有没有办法简单地冻结网页的状态而不在JS代码中找到相对的行并放置debugger语句?(不是浏览器特定的问题,任何可以做到这一点的浏览器都是好的)
我有一种情况,我想检查页面上的一些DOM,只有在以下情况下才能访问:
因为它在点击时触发,"强制元素状态"也没有帮助.
谢谢!
html browser google-chrome-devtools web firefox-developer-tools
试图执行这个postgres查询:
select date('2015-10-05') from posts;
Run Code Online (Sandbox Code Playgroud)
我将日期作为字符串传递:
Ecto.Adapters.SQL.query!(
Repo, "select date('$1') from posts", ["2015-10-05"])
Run Code Online (Sandbox Code Playgroud)
但是得到日期时间格式无效的错误.
** (Postgrex.Error) ERROR (invalid_datetime_format):
invalid input syntax for type date: "$1"
[debug] select date('$1') from posts ["2015-10-05"]
ERROR query=0.6ms
(ecto) lib/ecto/adapters/sql.ex:172: Ecto.Adapters.SQL.query!/5
Run Code Online (Sandbox Code Playgroud)
但是,我不是将它作为日期传递,而是作为字符串传递.Postgres的date()函数也接受字符串,AFAIK,当我添加::varchar以确保它是一个字符串时错误仍然相同.有什么建议可以避免这种情况吗?