2015-01-10 1 views
0

Erlang을 배우고 있습니다. 나는 기록을 테스트하고 내 기능을 실행하려고 할 때이 예외 오류 얻을 기록 작성을 위해 오전 : ** exception error: no function clause matchingErlang가 레코드 오류를 생성합니다.

콘솔 :

123> hello:helloRecords(). 
** exception error: no function clause matching 
        hello:createCar("BL 45 HK","Skoda octavia","White") (hello.erl, line 21) 
    in function hello:helloRecords/0 (hello.erl, line 28) 

코드 :

-module(hello). 
-author("Eddy"). 

-record(car, {evc, type, color}). 
-record(person, {name, phone, addres, rc}). 
-record(driver, {rc, evc}). 


%% API 
-export([helloIF/1, helloCase/1, helloResult/1, helloList/0, map/2, filter/2, helloListCaA/0, createCar/3, createPerson/4, createDriver/2, helloRecords/0]). 


createCar(p_evc, p_type, p_color) -> _car = #car{evc = p_evc, type = p_type, color = p_color}, _car 
    . 
createPerson(p_name, p_phone, p_addres, p_rc) -> _person= #person{name = p_name, phone = p_phone, addres = p_addres, rc = p_rc}, _person 
    . 
createDriver(p_evc, p_rc) -> _driver = #driver{rc = p_rc, evc = p_evc}, _driver 
    . 

helloRecords() -> _car = hello:createCar("BL 45 HK", "Skoda octavia", "White"), 
        _person = hello:createPerson("Eduard B.","+421 917 111 11","Krížna XX, 811XX Bratislava1", 8XXXXXXX5), 
        _driver = hello:createDriver(_car#car.evc, _person#person.rc), 
        io:fwrite(_person#person.name), 
        io:fwrite(" Je vodič auta:"), 
        io:fwrite(_car#car.type), 
        io:fwrite(" farba:"), 
        io:fwrite(_car#car.color),io:fwrite("\n") 
    . 
+0

'createCar (...)','createPerson (...)'및'createDriver (..)를 호출 할 수 있도록 같은 모듈에서 함수를 호출 할 때 모듈 이름을 지정할 필요가 없습니다. .)'. – rvirding

답변

3

createCar(p_evc, p_type, p_color) -> ... 변수는 대문자을 가지고있다 첫 번째 문자로. 이 절은 세 개의 원자를 기대하며 p_evc, p_type, p_color은 값이 매개 변수로 사용되지 않으므로 no function clause matching 오류입니다.

+0

Thx. 많은 것을 !! :) –

관련 문제