2

私はよく、アリティ0(引数なし)で新しい関数を生成する人々を次のように見ています。

 spawn_link(fun function_name/0).

ここで、function_name/0は次のようになります。

function_name() -> 
                   io:format("hello~n", []) 
end.

同様の方法で、パラメーターを受け取る関数を生成できますか?例えば:

function_name(Arg) ->
                   io:format("hello ~p ~n", [Arg])
end.

使用する必要があります

spawn_link(Module, Function, Arg)

または、他の何か?

4

1 に答える 1

6

それを引数で使用したり、指定された引数または固定引数だけでspawn_linkラムダ関数 ( ) を構築したりできます。funたとえば、あなたが言うように、次のように使用できます。

spawn_link(Module, Function, Args).

または、モジュールに独自のspawn_link(または) をエクスポートします。start

spawn_link(Args) ->
    spawn_link(?MODULE, fun myfun/X, Args).

または次を使用しますfun

spawn_link(Args) ->
    spawn_link(fun () -> apply(fun myfun/X, Args) end).

または、固定パラメーターを使用して内部的に関数を呼び出す場合:

spawn_link() ->
    spawn_link(fun () -> myfun(1,2,3) end).

この場合、はそれぞれの関数Xのアリティです。myfun

于 2012-07-02T14:27:44.300 に答える