기록 사용 : 내가 호출 할 때오류 내가 주소록 시뮬레이션해야하는 간단한 프로그램 만든
%% API
-export([]).
-export([createAddressBook/0]).
-export([checkIfExist/3]).
-export([addContact/3]).
-record(entry,{nameAndSurname,n_phone,email}).
createAddressBook() ->
Test = #entry{nameAndSurname = {"Marcin", "Majewski"}, n_phone = [997], email=["[email protected]"]},
[Test].
checkIfExist(_,_,[]) -> false;
checkIfExist(Name,Surname,[H|L]) ->
if
H#entry.nameAndSurname == {Name,Surname} -> true;
true -> checkIfExist(Name,Surname,L)
end.
addContact(Name,Surname,L)->
case checkIfExist(Name,Surname,L) of
true -> io:format("Entry already exist, nothing was created!");
_ -> newEntry = #entry{nameAndSurname = {Name,Surname}, n_phone = [],email = []},lists:append(L,newEntry)
end.
을하지만 :
: 나는 오류를 얻고있다X=module_name:createAddressBook().
B=module_name:addContact("Name","Surname",X).
을
** exception error: no match of right hand side value
{entry,{"Name","Surname"},[],[]}
in function addContact
이 문제의 원인을 이해할 수 없습니다.
함수에서 성을 정의하는 것을 잊었으며 레코드 정의에 기본값이 없습니다. 이와 같은 질문을 우편 목록이나 포럼에 가져 오는 것이 좋습니다. – zxq9
@ zxq9 그건 잊어 버렸지 만 문제를 해결하지는 못합니다. 왜 내가이 질문을하지 말아야합니까? –
오타가 있거나 실수로 코드에 실수가있는 경우는 일반적으로 잘 수행되지 않습니다. 실제로 이러한 경우는 거의 대답을 얻지 못하지만 응답을받지 못했습니다. 때로는 이런 것들이 완전히 무시됩니다. IRC, 목록 또는 포럼에 이와 같은 것을 가져 오는 OTOH는 여기에서 찾을 수있는 것보다 더 많은 답변과 약간의 동정심을 거의 보장받습니다. – zxq9