【发布时间】:2011-02-11 21:03:26
【问题描述】:
我有记录,其中一个字段是列表:
-record(state, {
rcpt :: list()
}).
Rcpt 字段有一些值 =
[“本地主机”,“管理员”]
我需要过滤这个列表。例如,我需要字段 localhost。
我试试:
List = lists:filter(fun(X) -> LocalHost =:= X end, State#state.rcpt),
但是列表是空的。
我怎么了?
我不明白。看:
io:format(State#state.rcpt),
%% output: localhost
HaveRcpt = lists:member("localhost", State#state.rcpt ),
io:format(HaveRcpt);
%% output false
但如果我使用:
io:format(State#state.rcpt),
HaveRcpt = lists:member("localhost", lists:nth(1,State#state.rcpt) ),
io:format(HaveRcpt);
%% true
谢谢。
【问题讨论】:
-
评论您的编辑和您所做的两个陈述:
1. State=#state{rcpt=["localhost","admin"]}和2. false=lists:member("localhost",State#state.rcpt)是矛盾的。请在 State 及其字段 rcpt 上打印您的确切格式。