1
在下面的例子中,我想在apply(M, F, A)
調用中爲參數指定一個類型,但是我不知道如何。在這裏,dialyzer
不callback_function
規範抱怨的{event, "something append !"}
和{anyevent, string()}
類型定義之間的類型不匹配:您可以使用apply(M,F,A)爲erlang中的函數參數指定一個類型嗎?
-module(erl_test).
-export([
callback_function/1,
test_it/0
]).
-spec callback_function(
Event::{anyevent, string()}) -> ok.
callback_function(Event) ->
io:format("event received: ~p~n", [Event]),
ok.
-spec notify_something(CbMod::module(), CbFun::atom()) -> ok.
notify_something(CbMod, CbFun) ->
apply(CbMod, CbFun, [{event, "something append !"}]),
ok.
test_it() ->
notify_something(?MODULE, callback_function).
或者你有其他的設計命題,我可以用做一個回調函數類型檢查?
謝謝!
謝謝!與'CbMod:CbFun({event,「something append!」})完美合作,' – JSM