【问题标题】:Elixir: array to function argumentsElixir:数组到函数参数
【发布时间】:2016-01-27 16:36:58
【问题描述】:

我是 Elixir 的新手。我使用 redix 库来处理 Redis。我无法正确执行 MGET 命令。 此代码有效:

Like4uElixir.RedixPool.command(["MGET", "a", "b", "c"])

- 它从 Redis 返回 3 个值。 但是这段代码不起作用:

keys = ["a", "b", "c"]
Like4uElixir.RedixPool.command(["MGET", keys])

但我拥有数组中的所有键。如何将我的数组转换为多个函数参数?

【问题讨论】:

  • 如果@Gazler 回答了您的问题,您应该接受他的正确回答。
  • @OnorioCatenacci 做到了。首先没有看到按钮:(

标签: elixir


【解决方案1】:

您的代码示例不一样。您正在创建一个嵌套列表,而不是创建一个包含 4 个元素的列表。

你是第二个例子:

["MGET", ["a", "b", "c"]]

你想做的:

keys = ["a", "b", "c"]
Like4uElixir.RedixPool.command(["MGET" | keys])
#or Like4uElixir.RedixPool.command(["MGET"] ++ keys)

【讨论】:

  • 天啊,太简单了! :) 这是我的错字,谢谢。我认为(不知道为什么)它是函数参数,而不是列表。
  • 更惯用的可能是["MGET" | keys]。还有 s/you're/your/ ;-)
  • @cdegroot 感谢您的建议。
  • 使用 cons 操作符更加地道。但是,如果您已经有了参数列表,则可以使用Kernel.apply。仅供参考。
猜你喜欢
  • 1970-01-01
  • 2018-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-25
  • 1970-01-01
  • 2023-03-24
相关资源
最近更新 更多