0

私はこのエラーで以下のコードを持っています:

10> clients_size:init().
{state,[]}

11> clients_size:size().
** exception error: bad argument
     in function  length/1
        called as length(2)
     in call from orddict:size/1 (orddict.erl, line 65)
     in call from clients_size:size/0 (clients_size.erl, line 10)

projects_size.erl

-module(clients_size).
-export([init/0, size/0]).
-record(state, {clients}). 

init() ->
    #state{clients=orddict:new()}.


size()->
    Size_of = orddict:size(#state.clients),
    io:format("size ~p ~n ",[Size_of]).

私はそれが空であることを知っていますが、それでも私はそれが0を示すだろうと思いました。

4

2 に答える 2

4

orddict:size()に変数を渡さなかった。

state.clientsは整数を返します-レコード状態のフィールド'clients'の数。

于 2013-03-10T17:46:45.940 に答える
0

私はそれを考え出した!

-module(clients_size).
-export([init/0, size/1]).
-record(state, {clients}). 

init() ->
    #state{clients=orddict:new()}.


size(S)->
    Size_of = orddict:size(S#state.clients),
    io:format("reference:size ~p ~n ",[Size_of]).

走る:

19> c(clients_size).
{ok,clients_size}
20> X = clients_size:init().
{state,[]}
21> clients_size:size(X).   
reference:size 0 
 ok
于 2013-03-10T18:03:02.177 に答える