Compartilhar via


Declaração de função

Declara uma nova função. Isso pode ser usado em vários contextos:

// in the global scope
function functionname([paramlist]) [: type] {
   [body]
}

// declares a method in a class
[attributes] [modifiers] function functionname([paramlist]) [: type] {
   [body]
}

// declares a method in an interface
[attributes] [modifiers] function functionname([paramlist]) [: type]

Argumentos

  • attributes
    Opcional. Atributos que controlam a visibilidade e o comportamento do método.

  • modificadores
    Opcional. Modificadores de controlam a visibilidade e o comportamento do método.

  • nomedafunção
    Obrigatório. O nome da função ou método.

  • paramlist
    Opcional. Uma lista de parâmetro delimitado por vírgula para a função ou método. Cada parâmetro pode incluir uma especificação de tipo. O último parâmetro pode ser um parameterarray, que é indicado por três períodos (...) seguido de um nome de parâmetro de matriz seguido de uma anotação de tipo de uma matriz tipificada.

  • type
    Opcional. Tipo do método de retorno.

  • body
    Opcional. Uma ou mais declarações que definem como o método ou função opera.

Comentários

Use o função a instrução para declarar uma função para uso posterior. O código contido no body não é executado até que a função é chamada de em qualquer ponto do script. O return declaração é usada para retornar um valor da função. Você não precisará usar um return de instrução, o programa irá retornar quando chegar ao final da função.

Métodos são semelhantes às funções globais, exceto que eles têm o escopo para o classe ou interface onde são definidas e pode ter vários modificadores que regem seus visibilidade e o comportamento. Um método em um interface não pode ter um corpo, enquanto um método em um classe deve ter um corpo. Há uma exceção a essa regra; Se um método em um classe é abstrata ou classe é abstrata, o método não pode ter um corpo.

Você pode usar a anotação de tipo para declarar os dados que digite a função ou método retorna. Se void é especificado como o tipo de retorno, nenhum valor pode ser retornado por qualquer do return instruções dentro da função. Se qualquer tipo de retorno diferente de void for especificado, todas as return declarações na função devem retornar um valor que é coercitivo para o tipo de retorno especificado. O valor indefinido é retornado se um tipo de retorno for especificado, mas uma retornar instrução aparece com nenhum valor ou se o final da função for atingido sem um return instrução. Funções de construtor não é possível especificar um tipo de retorno, desde a nova retornará automaticamente o objeto que está sendo criado.

Se nenhum tipo de retorno explícito é especificado para a função, o tipo de retorno será definido de qualquer Object ou void. O void retornar o tipo é selecionado somente quando há nenhum return instruções ou o return instruções aparecem sem valor no corpo da função.

Uma matriz de parâmetro pode ser usado como o último o parâmetro de uma função. Quaisquer argumentos adicionais passados à função (se houver), após os parâmetros necessários serão inseridos na matriz de parâmetros. A anotação de tipo do parâmetro não é opcional. ele deve ser uma matriz tipificada. Para aceitar os parâmetros de tipos arbitrários, use Object [ como a matriz tipificada. Quando chamar uma função que pode aceitar um número variável de argumentos, uma matriz explícita do tipo esperado pode ser usada no lugar de fornecer uma lista de parâmetros.

Ao chamar uma função, certifique-se de que você sempre incluir os parênteses e argumentos necessários. Chamando uma função sem parênteses faz com que o texto da função a ser retornado em vez dos resultados da função.

Exemplo 1

O exemplo a seguir ilustra o uso da função a instrução na primeira sintaxe:

interface IForm {
   // This is using function in Syntax 3.
   function blank() : String;
}

class CForm implements IForm {
   // This is using function in Syntax 2.
   function blank() : String {
      return("This is blank.");
   }
}

// This is using function in Syntax 1.
function addSquares(x : double, y : double) : double {
   return(x*x + y*y);
}

// Now call the function.
var z : double = addSquares(3.,4.);
print(z);

// Call the method.
var derivedForm : CForm = new CForm;
print(derivedForm.blank());

// Call the inherited method.
var baseForm : IForm = derivedForm;
print(baseForm.blank());

A saída deste programa é:

25
This is blank.
This is blank.

Exemplo 2

Neste exemplo, uma função printFacts aceita como entrada um String e a matriz usada de um parâmetro para aceitar um número variável de objetos.

function printFacts(name : String, ... info : Object[]) {
   print("Name: " + name);
   print("Number of extra information: " + info.length);
   for (var factNum in info) {
      print(factNum + ": " + info[factNum]);
   }
}

// Pass several arguments to the function.
printFacts("HAL 9000", "Urbana, Illinois", new Date(1997,0,12));
// Here the array is intrepeted as containing arguments for the function.
printFacts("monolith", [1, 4, 9]);
// Here the array is just one of the arguments.
printFacts("monolith", [1, 4, 9], "dimensions");
printFacts("monolith", "dimensions are", [1, 4, 9]);

Este programa exibe a seguinte saída quando executado:

Name: HAL 9000
Number of extra information: 2
0: Urbana, Illinois
1: Sun Jan 12 00:00:00 PST 1997
Name: monolith
Number of extra information: 3
0: 1
1: 4
2: 9
Name: monolith
Number of extra information: 2
0: 1,4,9
1: dimensions
Name: monolith
Number of extra information: 2
0: dimensions are
1: 1,4,9

Requisitos

Versão 1 (para Sintaxe 1)versão.NET (para sintaxes 2 e 3)

Consulte também

Referência

Operador New

Declaração de classe.

Declaração de interface.

Instrução Return

Conceitos

Escopo de variáveis e constantes

Anotação de tipo

Arrays digitados

Outros recursos

Modificadores