elixir - 在 Elixir 中将过滤器重写为管道运算符
问题描述
我对 Elixir 很陌生,我正在尝试重写这一点:
kids = ["Mike", "Paula", "Julia", "Phil"]
Enum.filter(kids, fn(n) -> String.contains? n, "i" end)
# results in: ["Mike", "Julia", "Phil"]
变成这样的东西
kids |> Enum.filter String.contains? "i"
不会工作。- 我错过了什么?
解决方案
很接近了,你可以一步一步来。
移动
kids
“之前”|>
:kids |> Enum.filter(fn(n) -> String.contains?(n, "i") end)
使用捕获运算符缩短过滤功能:
kids |> Enum.filter(&String.contains?(&1, "i"))
希望有帮助!
推荐阅读
- string - 从字符串中取出所有单词
- javascript - Json 数据集错误:无法读取未定义的属性“父”和无法设置属性“_node”为空
- r - R:对数据框进行难以描述的转换
- c++ - 保存 JSON 的双重自递归变体?
- ubuntu - 在 Raspberry Pi 3 Model B+ 上安装 Ubuntu Server 20.04 期间的屏幕失真
- python - set_index() 后数据帧多索引中的值消失
- javascript - 使用 Fetch API 递归返回分页输出
- html - 用户输入文本框显示在同一页面上
- excel - 使用 with 语句粘贴并在错误显示 msgbox 上
- node.js - 使用 yarn 从库中更新 RubyGem 依赖项