从案例警告中导出变量

Ser*_*nik 5 erlang warnings case-statement

使用erlang进行开发时,我有时会使用这样的case语句

case Status of
    1 ->
        Variable = "Something";
    2 ->
        Variable = "Something else";
    3 ->
        Variable = {"Something very different", [1,2,3]}
end
Run Code Online (Sandbox Code Playgroud)

根据某些条件为变量赋值.

问题是:如果我在case语句之后使用它:

do_something(Variable),
Run Code Online (Sandbox Code Playgroud)

我收到了编译警告:

Warning: variable 'Variable' exported from 'case'
Run Code Online (Sandbox Code Playgroud)

Erlang根据某些条件为变量赋值并避免此类警告的最佳做法是什么?

Dog*_*ert 12

在Erlang中执行此操作的惯用方法是分配Variable返回值,case因为case是一个表达式,它返回每个分支的最后一个表达式的值:

Variable = case Status of
    1 -> "Something";
    2 -> "Something else";
    3 -> {"Something very different", [1,2,3]}
end
Run Code Online (Sandbox Code Playgroud)