在Elixir中的函数调用之间保留变量值

在Elixir中的函数调用之间保留变量值,elixir,Elixir,调用函数中有一个字符串变量,我想将被调用函数返回的值附加到调用函数中的字符串变量。 在调试时,我看到每次我对字符串执行concat操作时,它都在创建一个新实例,因此该值没有被更新。 有没有其他方法可以达到同样的效果?所有数据都是不可变的。你可以不做任何更改/更新 不过,您可以重新绑定变量 a=foo a=a-巴 ⇒ 富吧 例如: a = "world" b = "hello #{a}" 听起来您正在函数内部执行concat,如下所示: def concatstr,do:str,世界! 然后像这

调用函数中有一个字符串变量,我想将被调用函数返回的值附加到调用函数中的字符串变量。 在调试时,我看到每次我对字符串执行concat操作时,它都在创建一个新实例,因此该值没有被更新。 有没有其他方法可以达到同样的效果?

所有数据都是不可变的。你可以不做任何更改/更新

不过,您可以重新绑定变量

a=foo a=a-巴 ⇒ 富吧 例如:

a = "world"
b = "hello #{a}"

听起来您正在函数内部执行concat,如下所示:

def concatstr,do:str,世界! 然后像这样使用它:

你好 concatstr返回你好,世界!,但不更新str str =>你好 您需要将结果分配回原始字符串:

str=concatstr返回Hello,World!,并将其分配给str str =>你好,世界! 或返回要连接的零件,并在函数外部执行连接:

定义创造世界,做:,世界! 你好 str=str make_world将str设置为Hello,world! str =>你好,世界!
当执行concat并将其分配给a时,我们是否更新变量a的值?否。我们将变量重新绑定到新值。更新意味着它是同一个变量,比如a=[],a更新问题,请不要在注释中抛出代码。