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只是记录中字段编号的语法糖。