小编use*_*259的帖子

生成N个自然数的序列

在Ruby中,可以使用splat来实现

[*1..5]
# => [1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

如何在Elixir中完成?

我知道我可以使用,reduce但也许有一种更简单的方法?

elixir

6
推荐指数
1
解决办法
253
查看次数

是否可以通过字符串或符号动态访问模块?

我正在尝试编写一组宏,所有这些都必须依赖于相同模块的知识,因此,我试图避免将此模块明确地传递给每个函数(我实际上这样做很好,但是当我正在学习语言时,我正试图探索所有可能性!).

所以我正在写(目标是访问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__宏访问当前模块,但我正在寻找一种方法来访问任何现有模块,而不仅仅是当前模块.

elixir

6
推荐指数
1
解决办法
991
查看次数

如何冻结dom树的状态(不使用js"debugger"语句)来检查它?

也许我从浏览器的开发工具中问了太多但是......有没有办法简单地冻结网页的状态而不在JS代码中找到相对的行并放置debugger语句?(不是浏览器特定的问题,任何可以做到这一点的浏览器都是好的)

我有一种情况,我想检查页面上的一些DOM,只有在以下情况下才能访问:

  • 我点击了一个特定的按钮
  • 它在模糊事件后消失(例如,一旦我在检查器中找到父元素并单击它,它会立即消失).

因为它在点击时触发,"强制元素状态"也没有帮助.

谢谢!

html browser google-chrome-devtools web firefox-developer-tools

5
推荐指数
1
解决办法
1028
查看次数

将表示日期的字符串传递给Ecto中的postgres查询

试图执行这个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以确保它是一个字符串时错误仍然相同.有什么建议可以避免这种情况吗?

elixir ecto

4
推荐指数
1
解决办法
886
查看次数