是否可以在文件中保留一个变量,然后在Erlang中导入并使用它?

是否可以在文件中保留一个变量,然后在Erlang中导入并使用它?,erlang,Erlang,我有一个带有返回不同proplist的函数的模块。 模块功能如下所示: get_schema(auth) -> [ {<<"login">>, [{string, required}]}, {<<"password">>, [{string, required}]}, {<<"id">>, [{string, required}]} ]; get_sch

我有一个带有返回不同proplist的函数的模块。 模块功能如下所示:

get_schema(auth) ->
    [
        {<<"login">>, [{string, required}]},
        {<<"password">>, [{string, required}]},
        {<<"id">>, [{string, required}]}
    ];

get_schema(update_password) ->
    [
        {<<"oldpassword">>, [{string, required}]},
        {<<"newpassword">>, [{string, required}]},
        {<<"id">>, [{string, required}]}
    ].
get\u schema(auth)->
[
{,[{string,必选}]},
{,[{string,必选}]},
{,[{字符串,必需的}]}
];
获取\u架构(更新\u密码)->
[
{,[{string,必选}]},
{,[{string,必选}]},
{,[{字符串,必需的}]}
].
然后,我从另一个模块导入这个模块,并使用相应的函数获取proplist


是否可以将这些PropList保留为变量,而不是函数,可以从导入此PropList的其他模块访问这些PropList?

我建议保持现状

如果确实要使用变量,则只需将返回值分配给变量,并按如下方式使用:

AuthSchema = my_module:get_schema(auth),

此函数是引用透明的,这意味着调用它并使用其返回值会得到相同的结果。在Erlang中,对常量使用带有不带参数的函数(或示例中的模式匹配)的单独模块是相当常见的做法。例如,看一下
translat
函数。

我建议保持现状

如果确实要使用变量,则只需将返回值分配给变量,并按如下方式使用:

AuthSchema = my_module:get_schema(auth),

此函数是引用透明的,这意味着调用它并使用其返回值会得到相同的结果。在Erlang中,对常量使用带有不带参数的函数(或示例中的模式匹配)的单独模块是相当常见的做法。例如,查看
translit
函数。

在Erlang中,使用模块之前不必导入模块,因为所有模块都是全局的。这些函数不执行计算,因此调用它们时没有开销。返回静态值和变量的函数几乎是一样的。有什么特别的原因让你不想使用它吗?这很好,问题几乎与我的编程习惯有关,我习惯于将函数作为块来计算,变量只是静态实体。在Erlang中,使用它之前不必导入模块,因为所有模块都是全局的。这些函数不执行计算,因此调用它们时没有开销。返回静态值和变量的函数几乎是一样的。有没有什么特别的原因让你不想按现在的方式使用它?这很好,问题几乎在于我的编程习惯,我习惯于将函数作为计算对象,变量只是静态实体。