English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O módulo é um grupo de funções recombinação em um único arquivo com um único nome. Além disso, todas as funções no Erlang devem ser definidas em módulos.
A maioria das funções básicas, como operações aritméticas, lógicas e operadores booleanos, já estão disponíveis, pois o módulo padrão é carregado durante a execução do programa. Cada outra função definida no módulo que você vai usar precisa ser carregada usando Módulo: Função (Argumentos) para chamar.
Usando o módulo, podem ser declarados dois tipos de conteúdo: funções e propriedades. As propriedades são metadados que descrevem o próprio módulo, como seu nome, funções visíveis para o exterior, autor do código, etc. Esses metadados são muito úteis, pois informam ao compilador como ele deve trabalhar, e também permitem que informações úteis sejam extraídas do código compilado, sem a necessidade de consultar o código-fonte.
A sintaxe da declaração de função é:
-module(modulename)
Aqui, modulename é o nome do módulo. Isso deve estar na primeira linha do código do módulo. O seguinte programa mostra um exemplo de um módulo chamado helloworld.
-module(helloworld). -export([start/0]). start() -> io:fwrite("Hello World").
O resultado da saída do código acima é -
Hello World
As propriedades do módulo definem propriedades específicas do módulo, compostas por marcadores e valores.
A sintaxe geral das propriedades é -
-Tag(Value)
O exemplo de programa abaixo é usado para demonstrar como usar as propriedades do módulo. -
-module(helloworld). -author("TutorialPoint"). -version("1.0"). -export([start/0]). start() -> io:fwrite("Hello World").
Definição do programa acima2propriedades personalizadas: author e version, usadas respectivamente para representar o autor e o número da versão do programa.
O resultado da saída do código acima é -
Hello World
Propriedades pré-construídas
O Erlang tem algumas propriedades pré-construídas que podem ser conectadas a módulos, vamos ver.
As propriedades exportadas usarão a lista de quantidade de funções e parâmetros para exportar para outros módulos. Ele definirá a interface do módulo. Vimos isso em nossos exemplos anteriores.
export([FunctionName1/FunctionArity1,.,FunctionNameN/FunctionArityN])
Aqui
FunctionName − Este é o nome da função no programa;
FunctionArity − Este é o número de parâmetros associados à função;
-module(helloworld). -author("TutorialPoint"). -version("1.0"). -export([start/0]). start() -> io:fwrite("Hello World").
O resultado da saída do código acima é -
Hello World
A propriedade de importação é usada para importar funções de outro módulo para uso local
-import(modulename, [functionname/parâmetro]).
Aqui
Nomenodemódulo − Este é o nome do módulo que precisa ser importado
nomedafunção/parâmetro − Esta é a função que precisa ser importada no módulo
-module(helloworld). -import(io,[fwrite/1]). -export([start/0]). start() -> fwrite("Olá, mundo!\n").
No código acima, usamos a palavra-chave import para importar a biblioteca 'io', especificando a importação da função fwrite. Portanto, agora, a cada chamada da função fwrite, não é necessário levar o nome do módulo a cada vez.
O resultado da saída do código acima é -
Olá, mundo!