Enum.member/2只能检查一个元素成员资格.喜欢
Enum.member ["abc", "def", "ghi", "123", "hello"], "abc" -> true
有没有办法使用匿名函数等来检查多个项目的成员资格,如果没有包含其中一个元素以保持DRY并避免这样的事情,则返回false?
Enum.member ["abc", "def", "ghi", "123", "hello"], "abc"
Enum.member ["abc", "def", "ghi", "123", "hello"], "def"
Enum.member ["abc", "def", "ghi", "123", "hello"], "ghi"
Run Code Online (Sandbox Code Playgroud)
您可以使用Enum.all?/2(如果您希望所有项目都存在)或Enum.any?/2(如果您希望存在任何一个项目)+ Enum.member?/2(或in运算符,它执行相同的操作)的组合:
iex(1)> list = ["abc", "def", "ghi", "123", "hello"]
["abc", "def", "ghi", "123", "hello"]
iex(2)> Enum.all?(["abc", "def", "ghi"], fn x -> x in list end)
true
iex(3)> Enum.any?(["abc", "def", "ghi"], fn x -> x in list end)
true
iex(4)> Enum.all?(["abc", "z"], fn x -> x in list end)
false
iex(5)> Enum.any?(["abc", "z"], fn x -> x in list end)
true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
636 次 |
| 最近记录: |