関数を返す関数があります。私はEUnitテストでそれをチェックします:
string_to_options_test() ->
Parser = get_parser("-", ?OPTS_FOO_BAR),
{ok, [opt_foo, opt_bar]} = Parser("foo-bar").
それは大丈夫です。最後の行を変更すると、エラーが発生します。
string_to_options_test() -> % 41
Parser = get_parser("-", ?OPTS_FOO_BAR),
Parser("foo-bar") = {ok, [opt_foo, opt_bar]}. % 43, swapped LHS and RHS,
テストの実行:
urlparser.erl:43: illegal pattern
urlparser.erl:41: Warning: variable 'Parser' is unused
Parser
割り当ての左側で関数を使用できないのはなぜですか?