CoffeeScript - Funções

Uma função é um bloco de código reutilizável que pode ser chamado em qualquer lugar em seu programa. Isso elimina a necessidade de escrever o mesmo código repetidamente. Ajuda os programadores a escrever códigos modulares.

As funções permitem que um programador divida um grande programa em várias funções pequenas e gerenciáveis.

Em geral, usando JavaScript, podemos definir dois tipos de funções - named functions, as funções regulares com corpo do nome da função e, Function expressions. Usando expressões de função, podemos atribuir funções a variáveis.

//named function
function sayHello(){
   return("Hello there");
}
 
//function expressions
var message = function sayHello(){
   return("Hello there");
}

Funções em CoffeeScript

A sintaxe da função em CoffeeScript é mais simples em comparação com JavaScript. No CoffeeScript, definimos apenas expressões de função.

o functiona palavra-chave é eliminada no CoffeeScript. Para definir uma função aqui, temos que usar uma seta fina (->)

Nos bastidores, o compilador CoffeeScript converte a seta na definição de função em JavaScript, conforme mostrado abaixo.

(function() {});

Não é obrigatório usar o returnpalavra-chave em CoffeeScript. Cada função em CoffeeScript retorna a última instrução da função automaticamente.

  • Se quisermos retornar à função de chamada ou retornar um valor antes de chegarmos ao final da função, podemos usar o return palavra-chave.

  • Além das funções in-line (funções que estão em uma única linha), também podemos definir funções multilinhas no CoffeeScript. Como as chaves são eliminadas, podemos fazer isso mantendo os recuos adequados.

Definindo uma função

A seguir está a sintaxe para definir uma função no CoffeeScript.

function_name = -> function_body

Exemplo

Abaixo está um exemplo de uma função em CoffeeScript. Aqui, criamos uma função chamadagreet. Esta função retorna automaticamente a instrução nele. Salve-o em um arquivo com o nomefunction_example.coffee

greet = -> "This is an example of a function"

Compile-o executando o seguinte comando no prompt de comando.

c:\>coffee -c function_example.coffee

Na compilação, ele gera o seguinte código JavaScript. Aqui você pode observar que o compilador CoffeeScript retornou automaticamente o valor da string na função chamadagreet().

// Generated by CoffeeScript 1.10.0
(function() {
  var greet;
  
  greet = function() {
    return "This is an example of a function";
  };

}).call(this);

Funções multilinhas

Também podemos definir uma função com várias linhas, mantendo indentações em vez de chaves. Mas temos que ser consistentes com o recuo que seguimos para uma linha ao longo de uma função.

greet =  ->
  console.log "Hello how are you"

Na compilação, o CoffeeScript acima fornece o seguinte código JavaScript. O compilador CoffeeScript captura o corpo da função que separamos usando indentações e colocado dentro das chaves.

// Generated by CoffeeScript 1.10.0
(function() {
  var greet;

  greet = function() {
    return console.log("Hello how are you");
  };

}).call(this);

Funções com Argumentos

Também podemos especificar argumentos em uma função usando parênteses, conforme mostrado abaixo.

add =(a,b) ->
  c=a+b
  console.log "Sum of the two numbers is: "+c

Ao compilar o arquivo CoffeeScript acima, ele irá gerar o seguinte JavaScript.

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function(a, b) {
    var c;
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };

}).call(this);

Invocando uma função

Depois de definir uma função, precisamos invocar essa função. Você pode simplesmente chamar uma função colocando parênteses após seu nome, conforme mostrado no exemplo a seguir.

add = ->
  a=20;b=30
  c=a+b
  console.log "Sum of the two numbers is: "+c  
add()

Na compilação, o exemplo acima fornece o seguinte JavaScript

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function() {
    var a, b, c;
    a = 20;
    b = 30;
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };
  add();
}).call(this);

Ao executar o código CoffeeScript acima, ele gera a seguinte saída.

Sum of the two numbers is: 50

Invocando funções com argumentos

Da mesma forma, podemos invocar uma função com argumentos passando-os a ela conforme mostrado abaixo.

my_function argument_1,argument_2
or
my_function (argument_1,argument_2)

Note - Ao invocar uma função passando argumentos para ela, o uso de parênteses é opcional.

No exemplo a seguir, criamos uma função chamada add() que aceita dois parâmetros e nós o invocamos.

add =(a,b) ->
  c=a+b
  console.log "Sum of the two numbers is: "+c
add 10,20

Na compilação, o exemplo acima fornece o seguinte JavaScript.

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function(a, b) {
    var c;
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };

  add(10, 20);

}).call(this);

Ao executar, o código CoffeeScript acima gera a seguinte saída.

Sum of the two numbers is: 30

Argumentos Padrão

CoffeeScript também oferece suporte a argumentos padrão. Podemos atribuir valores padrão aos argumentos de uma função, conforme mostrado no exemplo a seguir.

add =(a = 1, b = 2) ->
  c=a+b
  console.log "Sum of the two numbers is: "+c
add 10,20

#Calling the function with default arguments
add()

Na compilação, o CoffeeScript acima gera o seguinte arquivo JavaScript.

// Generated by CoffeeScript 1.10.0
(function() {
  var add;

  add = function(a, b) {
    var c;
    if (a == null) {
      a = 1;
    }
    if (b == null) {
      b = 2;
    }
    c = a + b;
    return console.log("Sum of the two numbers is: " + c);
  };

  add(10, 20);
  add()

}).call(this);

Ao executar o código CoffeeScript acima, ele gera a seguinte saída.

Sum of the two numbers is: 30
Sum of the two numbers is: 3