功能
功能是一组指令,它们组合在一起。这些分组指令一起执行某些任务。在 erlang 中,所有函数在调用时都会返回一个值。
下面是一个添加两个数字的函数示例
add(X, Y)-> X + Y.
此函数使用 X 和 Y 值执行添加操作并返回结果。功能可以如下使用
add(2,5).
函数声明可以由多个子句组成,用分号分隔。每个子句中的参数都通过模式匹配来评估。如果 Argument 是 Form 中的元组,则以下函数将返回’tuple’:{test,X}其中 X 可以是任何值。它将返回’list’,如果 Argument 是表格[test
,X]中长度为 2 的列表,并且在任何其他情况下它将返回’{error,Reason
}’:
function({test, X}) -> tuple;
function(["test", X]) -> list;
function(_) -> {error, "Reason"}.
如果参数不是元组,则将评估第二个子句。如果参数不是列表,则将评估第三个子句。
函数声明可以包含所谓的 Guards
或 Guard Sequences
。这些 Guards 是限制函数求值的表达式。只有当所有 Guard 表达式都产生真值时,才会执行带有 Guards 的函数。多个警卫可以用分号分隔。
function_name(Argument) when Guard1; Guard2; ... GuardN -> (...).
仅当 Guard Sequence 为 true 时,才会评估函数’function_name’。只有当参数 X
在适当的范围内(0..15)时,folllwing 函数才会返回 true:
in_range(X) when X>=0; X<16 -> true;
in_range(_) -> false.