Back

elixir - 16 comprehension

发布时间: 2019-03-04 10:47:00

参考:   https://elixir-lang.org/getting-started/comprehensions.html

for n <- [1,2,3], do: n * n + 1    # 
[2, 5, 10]

上面的  n <- [1,2,3]  就是 generator 

可以同时使用多个 generator 

iex(5)> for i <- [:a, :b, :c], j <- [3, 5], do: {i,j}
[a: 3, a: 5, b: 3, b: 5, c: 3, c: 5]

可以使用 into 来处理Map

# 没使用into , 可以看到返回的是个数组
iex(7)> for {key, value} <- %{"a" => 1, "b" => 2}, do: {key, value * value}           
[{"a", 1}, {"b", 4}]

# 使用into , 可以看到返回的是个Map
iex(6)> for {key, value} <- %{"a" => 1, "b" => 2}, into: %{}, do: {key, value * value}       
%{"a" => 1, "b" => 4}


Back