Erlang:orddict:size()函数用于记录?

Erlang:orddict:size()函数用于记录?,erlang,size,record,ordereddictionary,Erlang,Size,Record,Ordereddictionary,我有以下带有此错误的代码: 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 client

我有以下带有此错误的代码:

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)
客户_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

您没有将任何变量传递给orddict:size()


state.clients返回一个整数——记录状态下字段“clients”的数目。

您没有向orddict:size()传递任何变量

state.clients返回一个整数——记录状态下字段“clients”的数量。

我算出了

-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
我知道了

-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

clients
是否是
记录中的
orddict
,如
clients=orddict:new()
?@lost_with_coding所定义的
orddict
,如果您指定变量,如某个变量#state.clients,它将具有orddict类型。。。但是没有变量,#recordname.field只是记录中字段号的语法糖。客户机不是
记录
状态
中的
orddict
,如
客户机=orddict:new()
?@lost_与#编码一样,如果指定变量#state.clients,它将具有orddict类型。。。但如果没有变量,#recordname.field只是记录中字段编号的语法糖。