我如何把一个列表说 [1,2,3,45,67,]
并将其分解为 [1,2,3,4,5,6,7]
?
可以不用进行字符串转换。
Enum.flat_map([1, 2, 3, 45, 67], &Integer.digits/1)
你可以试试这样的方法:
[1, 2, 3, 45, 67]
|> Enum.map(&Integer.to_string/1)
|> Enum.flat_map(&String.graphemes/1)
|> Enum.map(&String.to_integer/1) # results in [1, 2, 3, 4, 5, 6, 7]
使用 Kernel.SpecialForms.for/1
理解力。
for << <<c>> <- Enum.join([1, 2, 3, 45, 67]) >>, do: c - ?1 + 1
#⇒ [1, 2, 3, 4, 5, 6, 7]