Elixir Enum.filter(除一个元素外)
从这个列表Elixir Enum.filter(除一个元素外),elixir,Elixir,从这个列表[23,23,35,46]我想排除23并获取[35,46],所以我尝试了 Enum.filter([23,23,35,46],fn x -> x != 23 end) 我得到了“#.作为输出,为什么这不起作用x!=23是有效的布尔值 当这起作用时 Enum.filter([23,23,35,46],fn x -> x == 23 end) #[23,23] “#”的含义是什么?您可以这样做,因为您在第一个示例中期望的输出是35和46,但由于它们在ASCII范围内,因此它
[23,23,35,46]
我想排除23
并获取[35,46]
,所以我尝试了
Enum.filter([23,23,35,46],fn x -> x != 23 end)
我得到了“#.
作为输出,为什么这不起作用x!=23
是有效的布尔值
当这起作用时
Enum.filter([23,23,35,46],fn x -> x == 23 end)
#[23,23]
“#”的含义是什么?
您可以这样做,因为您在第一个示例中期望的输出是35和46,但由于它们在ASCII范围内,因此它们被解释为字母。因此,基本上,如果一个包含所有整数的列表在ASCII范围内,它将被解释为charlist。在第二个示例中,您得到23,因为它不在ASCII范围内。你只需在列表中列出23条就可以检查这一点。但是如果你试着写35或46,它会被“读”成一个字母。在后台,这两个示例都只是整数列表,但当我们将其输出到终端时,其解释不同。
无论如何,如果您想将它们解释为整数,尽管您的代码很好,但还是检查一下这个,在这种情况下,Enum.reject可能是一个更好的选择。