天天看點

erlang 自定義函數的初步應用

一、子產品内調用

1> AA=fun(BB)-> io:format("this is test args ~s~n",[BB]) end.

#Fun<erl_eval.6.17052888>

2> AA(aa).

this is test argsaa

ok

3> BB=fun()-> io:format("this is BB FUN ~n",[]) end.      

#Fun<erl_eval.20.17052888>

4> BB().

this is BB FUN

5> spawn( BB).  

<0.62.0>

6> spawn(fun()-> AA(cc) end).

this is test argscc

<0.67.0>

7> Fun =fun(A,B)-> io:format("the product is:~w~n",[A*B]) end.

#Fun<erl_eval.12.80484245>

8> Fun2 =fun(Fun,A,B) ->Fun(A,B) end.

#Fun<erl_eval.18.80484245>

9> Fun2(Fun,2,4).

the product is:8

二、跨子產品調用

-module(mod_user).

-export([test/0]).

test()->

    io:format("hello test ~n").

1> mod_user:test().

hello test

2> spawn(fun mod_user:test/0).

<0.35.0>

3> spawn(mod_user,test,[]).

<0.37.0>

備注:2 隻能用于空參數的函數,否則隻能用3代替。

三、需要寫到檔案中

  test(A,B)-> io:format("the product is:~w~n",[A*B]) .

  test_fun(Fun,A,B)-> Fun(A,B).

  test_import()-> test_fun(fun test/2,2,3).

 需要導出test_import/0,然後在控制台調用module:test_import().

上一篇: 需要測試

繼續閱讀