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