Abrir menu principal

Parâmetro (ciência da computação)

Ambox rewrite.svg
Esta página precisa ser reciclada de acordo com o livro de estilo (desde junho de 2010).
Sinta-se livre para editá-la para que esta possa atingir um nível de qualidade superior.

Na ciência da computação, um parâmetro é um valor, proveniente de uma variável ou de uma expressão mais complexa, que pode ser passado para uma sub-rotina. Uma sub-rotina utiliza os valores atribuídos aos parâmetros para alterar o seu comportamento em tempo de execução. A maioria das linguagens de programação aceitam a definição de sub-rotinas que aceitam zero ou mais parâmetros.

Índice

Parâmetro e ArgumentoEditar

O termo parâmetro muitas vezes é utilizado como sinónimo de argumento, mas geralmente utiliza-se "parâmetros" quando se faz referência às variáveis situadas na assinatura de um método ou função e "argumentos" aos valores atribuídos a esses parâmetros.[1]

A maioria dos programadores utiliza estes termos sem distinção de significado. Na prática, não é necessário distinguir as diferenças entre os dois termos para que a descrição de um código esteja correta.

Para melhor explicar a diferença entre os dois termos pode-se considerar a seguinte sub-rotina escrita na linguagem C:

int somar(int param1, int param2)
{
    return param1 + param2;
}

A sub-rotina "somar" tem dois parâmetros, "param1" e "param2". Ela soma os valores passados e retorna o resultado para o código que realizou a chamada. O código que realiza a chamada pode ser algo como o mostrado abaixo:

int variavelResultado;
int variavel1 = 40;
int variavel2 = 2;

variavelResultado = somar(variavel1, variavel2);

Durante a execução, as variáveis "variavel1" e "variavel2" são inicializadas e passadas (como argumentos) para a sub-rotina "somar". Dentro da rotina, os parâmetros são avaliados e os argumentos '40' e '2' são obtidos. Estes valores são somados, o resultado é retornado e atribuído à variável "variavelResultado". É importante notar que variáveis não são parâmetros e nem argumentos.

Tipos de dadosEditar

Em linguagens de programação que utilizam explicitamente tipos de dados fortes, cada tipo de parâmetro é especificado na declaração da sub-rotina. As linguagens que utilizam inferência de tipos tentam descobrir automaticamente o tipo do parâmetro no corpo da função, enquanto as linguagens que utilizam tipos fracos descobrem o tipo do parâmetro em tempo de execução.

Algumas linguagens utilizam palavras reservadas especiais (void, por exemplo) para indicar que uma sub-rotina não possui parâmetros; na teoria dos tipos, estas funções levam uma lista vazia de parâmetros (cujo tipo não é void, mas unit).

Passagem de argumentosEditar

O mecanismo exato para a atribuição de argumentos para parâmetros, chamada de "passagem de argumentos", depende da estratégia de avaliação utilizada para o parâmetro (tipicamente chamada por valor). Esta estratégia pode ser especificada através de palavras reservadas.

Argumento padrãoEditar

Algumas linguagens de programação permitem que argumentos padrão (ou, do inglês, default) sejam explicitamente passados através da declaração de uma sub-rotina. Isto permite a omissão do argumento durante a chamada da sub-rotina. Nestes casos, se não é passado um argumento na chamada da sub-rotina, o argumento padrão (que consta da declaração da sub-rotina) é utilizado. Em algumas linguagens é possível dizer que tal argumento é implícito (através da palavra reservada optional, por exemplo) e, quando a chamada não passar o valor, um valor bem conhecido é atribuído ao parâmetro (normalmente null, vazio ou zero).

Lista variável de parâmetrosEditar

Algumas linguagens permitem que sub-rotinas aceitem um número variável de parâmetros. O código, ou implementação, destas sub-rotinas deve percorrer esta lista para obter cada um dos parâmetros.

Parâmetros nomeadosEditar

Em algumas linguagens de programação os parâmetros de uma sub-rotina podem ser nomeados. Isto permite que o código que chama estas sub-rotinas "documente" a si próprio. Esta abordagem também dá maior flexibilidade ao código que chama a sub-rotina, permitindo a alteração na ordem dos argumentos passados ou mesmo a omissão de algum argumento, se necessário.

Referências

  1. Brian W. Kernighan e Dennis M. Ritchie (1988). The C programming Language 2 ed. Estados Unidos da América: Prentice-Hall. ISBN 0-13-110362-8