2009-08-31 4 views
8

Erlang을 처음 사용했습니다.Erlang : module 속성

-module(mod_name, [Name, Path, Version]). 

은 무엇 두 번째 매개 변수 (목록 [이름, 경로, 버전]) 여기를 의미 하는가 : 기존 얼랑 프로젝트에서 다음 -module 속성 선언을 발견하셨습니까?

Erlang 참조 정보가 없습니다.

+2

매개 변수가있는 모듈은 아직 공식적으로 Erlang의 일부가 아니지만 현재 배포판에서는 공식적으로 지원하지 않습니다. 또한 new를 제외하고는 매개 변수화 된 모듈에서 함수를 직접 호출하면 안됩니다. 항상 new에서 반환 된 eference를 사용하십시오. – rvirding

+0

매개 변수가있는 모듈을 제거하더라도 새로운 기능이 작동하지 않습니까? – Zubair

+0

이것은 공식적으로 어딘가에 문서화되어야합니다. 현재 널리 사용되는 앱이 사용됩니다 (예 : Mochiweb). Mochiweb에서의 사용 예는 http://code.google.com/p/mochiweb/source/browse/trunk/src/mochiweb_request.erl –

답변

11

이것은 매개 변수가있는 erlang 모듈을 정의합니다. 새 모듈을 "인스턴스화"한 다음 모듈에서 코드를 실행할 때 해당 new가 전달한 매개 변수에 액세스 할 수 있습니다.

매우 간략한 개요는 여기에 있습니다 :

http://myotherpants.com/2009/04/parameterized-modules-in-erlang/

7

이것은 매개 변수화 모듈입니다. 여기에 original paper이 있습니다. 기본적으로 이러한 변수에 특정 값을 바인딩하는 모듈의 인스턴스를 만들 수 있습니다. 당신은 하나를 초기화 할 수 있습니다 :

> Mod = mod_name:new("MyName", "/path", '0.1'). 

을 다음과 같이 그 함수를 호출 : 모듈 매개 변수는 함수 본문에서 사용할 수있는

> Mod:function(...) 

.