1
這是我的代碼片段。在Erlang函數中傳遞地圖類型參數抱怨錯誤
%% test.erl
-export([count_characters/1]).
count_characters(Str) ->
count_characters(Str, #{}).
count_characters([H|T], #{H := N} = X) ->
count_characters(T, X#{H := N+1});
count_characters([H|T], X) ->
count_characters(T, X#{H => 1});
count_characters([], X) ->
X.
%% ErShell
1> c(test).
test.erl:19: illegal use of variable 'H' in map
test.erl:20: illegal use of variable 'H' in map
test.erl:20: variable 'N' is unbound
test.erl:22: illegal use of variable 'H' in map
error
我只是不知道爲什麼會這樣抱怨錯誤,因爲下面的代碼只是制定了罰款:
%% test2.erl
birthday(#{age := N} = Person) ->
Person#{age := N+1}.
%% ErShell
1> c(test2).
2> test2:birthday(#{age => 333}).
#{age => 334}
在此先感謝。
正如一個附加:你可能會發現你的代碼喬編程Erlang,第二版,呃?它已經在勘誤表上了。它將在未來的某個時間起作用。 –