首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用管道与函数调用时出现错误/混淆

使用管道与函数调用时出现错误/混淆
EN

Stack Overflow用户
提问于 2021-09-23 22:17:36
回答 1查看 46关注 0票数 1

到目前为止,在我尝试做一个皮诺奇尔甲板的过程中,我已经

代码语言:javascript
运行
复制
deck = for rank <- ['2','3','4','5','6','7','8','9','T','J','Q','K','A',], suit <- ['C','D','H','S'],  blackwhite <- ['B','W'],  do: %{suit: suit, rank: rank, blackwhite: blackwhite}
|> Enum.shuffle

但是,混洗部分似乎会混洗贴图的内部部分,而不是贴图本身。但是,当将管道切换为

Enum.shuffle(deck)

我得到了预期的结果。想知道它的原因,以及是否有更好的方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-24 04:06:46

由于运算符的优先级,这是预期的行为。|>/2是一个运算符和operators precede宏调用。基本上,pipe与下面示例中的乘法运算符具有相同的优先级,这就是为什么它应用于映射,而不是应用于for/1调用的结果。

代码语言:javascript
运行
复制
for i <- [1, 2, 3], do: i * 2

要实现所需的功能,请使用括号。

代码语言:javascript
运行
复制
deck =
  (for rank <- [...], suit <- [...],  blackwhite <- [...],
    do: %{suit: suit, rank: rank, blackwhite: blackwhite})
  |> Enum.shuffle
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69307470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档