我正在尝试将现有的 C 函数转换为 Erlang,但在理解它如何工作方面遇到了一些困难。假设我在 C 中有以下函数:
void(int *x,int *y,int z,int a)
{
if(z<a)
{
*x = z + a;
*y = z - a;
}
}
我如何在 Erlang 中编写类似的东西作为功能模块?我知道通常你编写函数并且它会返回一个操作。但是如果我必须对多个变量进行计算怎么办?
最佳答案
您可以返回一个元组,例如:{X, Y}
这是一个将作为输入给出的两个值加倍的函数:
-module(my_module).
-export([doubleus/2]).
doubleus(X, Y) ->
{X*2, Y*2}.
在外壳中:
1> c(my_module).
{ok, my_module}
2> {A, B} = my_module:doubleus(3,4).
{6, 8}
关于function - 传递多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12153967/