在参数列表中描述函数
Describing a function in a list of parameters
我有这样的函数描述:
-spec match_evaluator(ReplaceFun, Text, Regex) -> Result
when ReplaceFun :: function(),
Text :: string(),
Regex :: string(),
Result :: string().
match_evaluator(ReplaceFun, Text, Regex) ->
我想对参数ReplaceFun
的参数进行更详细的说明。 ReplaceFun
是函数的 link。
类似的东西:
-type replace_fun(string(),[string()]) :: {string(), non_neg_integer()}.
% : bad type variable
我想正确定义这个类型(一个有两个参数和 return 类型的函数)。请告诉我如何正确描述这个函数的类型。
例如,您可以编写 fun((string(), string()) -> string())
来引用一个接受两个字符串和 return 一个字符串的函数。如果您不关心参数或 return 类型是什么,请在它们的位置使用 any()
。我推荐 Erlang documentation 的讲座以获得更多选择。
有一个-spec
的函数match_evaluator
:
-spec match_evaluator1(ReplaceFun, Text, Regex) -> Result
when ReplaceFun :: fun((FullString :: string(), MatchResult :: [string()]) ->
(NewString :: string())),
Text :: string(),
Regex :: string(),
Result :: string().
match_evaluator1(ReplaceFun, Text, Regex) ->
%..
@radrow, reference_manual 和 Erlang 标准库 socket_test_evaluator.erl
的源代码(我在文件夹 erlang/otp/erts/emulator/test
中找到)提示了我解决方案的想法。
该函数的源代码为here。
我有这样的函数描述:
-spec match_evaluator(ReplaceFun, Text, Regex) -> Result
when ReplaceFun :: function(),
Text :: string(),
Regex :: string(),
Result :: string().
match_evaluator(ReplaceFun, Text, Regex) ->
我想对参数ReplaceFun
的参数进行更详细的说明。 ReplaceFun
是函数的 link。
类似的东西:
-type replace_fun(string(),[string()]) :: {string(), non_neg_integer()}.
% : bad type variable
我想正确定义这个类型(一个有两个参数和 return 类型的函数)。请告诉我如何正确描述这个函数的类型。
例如,您可以编写 fun((string(), string()) -> string())
来引用一个接受两个字符串和 return 一个字符串的函数。如果您不关心参数或 return 类型是什么,请在它们的位置使用 any()
。我推荐 Erlang documentation 的讲座以获得更多选择。
有一个-spec
的函数match_evaluator
:
-spec match_evaluator1(ReplaceFun, Text, Regex) -> Result
when ReplaceFun :: fun((FullString :: string(), MatchResult :: [string()]) ->
(NewString :: string())),
Text :: string(),
Regex :: string(),
Result :: string().
match_evaluator1(ReplaceFun, Text, Regex) ->
%..
@radrow, reference_manual 和 Erlang 标准库 socket_test_evaluator.erl
的源代码(我在文件夹 erlang/otp/erts/emulator/test
中找到)提示了我解决方案的想法。
该函数的源代码为here。