最初に、param1
とparam2
を下位文字として書くと、を意味し、パラメータではありません。私は、例えばParam1 == undefined
some_function(undefined, _Param2, ...) ->
io:format("Param1 is undefined~n");
some_function(_Param1, undefined, ...) ->
io:format("Param2 is undefined~n");
some_function(Param1, Param2, ...) ->
io:format("Params are OK!~n").
すべての句が;
によって分離されている場合をキャッチする機能句を使用することをお勧めしたい、あなたの質問に関しては
some_function(Param1, Param2, ...)
:あなたはあなたの関数になりたいです最後の句はドット.
で終了します。
更新:
答える以下のコメント:は、より汎用的にする方法はありますか?
本当に実装によって異なります。あなたはあなたの望みの入力が何であるか考える必要があり、あなたが望みの入力を得なければ、何を得るでしょうか?特定の原子ですか?リストの代わりにちょうどランダムな原子ですか?以下では、使用する可能性のある他のオプションをいくつか追加しました。そして、Learn You Some Erlangを見てみると、そこにすべての答えが見つかるでしょう。特定の何かを確認するために
some_function(Param1, ...) when is_atom(Param1) ->
...
some_function(Param1, ...) -> ...
または、case .. of
:
あなたは、特定の種類を確認するために警備員を使用することができます
some_function(Param1, Param2, ...) ->
case Param1=:=7 andalso is_list(Param2) of
true -> something;
false -> something_else
end.
詳細と例についてはthisとthisを参照してください。
ユーザが「自分のurlにparameter1を入力しなかった」場合、正確にどのような値を 'parameter1'として渡しますか?空の文字列ですか?空のバイナリ?なし?何か? – Dogbert
私は 'undefined'として解析しました。 (param1 == undefined - > )'' 'some_function(param1、 send({502、Msg}、Req); some_function(param1、param2) - > main_handler_here''' –