For loop Elixir:for循环的返回值

For loop Elixir:for循环的返回值,for-loop,elixir,For Loop,Elixir,我需要Elixir中返回计算值的for循环 以下是我的简单示例: a = 0 for i <- 1..10 do a = a + 1 IO.inspect a end IO.inspect a 我知道在这个例子中我是未使用的,可以用来代替a,但这不是问题所在。问题是如何让for循环返回变量a=10?您不能这样做,因为Elixir中的变量是不可变的。您的代码真正要做的是在for内部为每次迭代创建一个新的a,并且根本不修改外部a,因此外部a保持为1,而内部a始终为2。对于初

我需要Elixir中返回计算值的for循环

以下是我的简单示例:

a = 0
for i <- 1..10
do
    a = a + 1
    IO.inspect a
end

IO.inspect a

我知道在这个例子中我是未使用的,可以用来代替a,但这不是问题所在。问题是如何让for循环返回变量a=10?

您不能这样做,因为Elixir中的变量是不可变的。您的代码真正要做的是在for内部为每次迭代创建一个新的a,并且根本不修改外部a,因此外部a保持为1,而内部a始终为2。对于初始值+更新可枚举项每次迭代的值的这种模式,可以使用Enum.reduce/3:

输出:

1
2
3
4
5
6
7
8
9
10
10

您不能这样做,因为Elixir中的变量是不可变的。您的代码真正要做的是在for内部为每次迭代创建一个新的a,并且根本不修改外部a,因此外部a保持为1,而内部a始终为2。对于初始值+更新可枚举项每次迭代的值的这种模式,可以使用Enum.reduce/3:

输出:

1
2
3
4
5
6
7
8
9
10
10
1
2
3
4
5
6
7
8
9
10
10