CoffeeScript - Funzioni

Una funzione è un blocco di codice riutilizzabile che può essere chiamato ovunque nel programma. Ciò elimina la necessità di scrivere ripetutamente lo stesso codice. Aiuta i programmatori a scrivere codici modulari.

Le funzioni consentono a un programmatore di dividere un grande programma in un numero di funzioni piccole e gestibili.

In generale, utilizzando JavaScript, possiamo definire due tipi di funzioni: named functions, le funzioni regolari con corpo del nome della funzione e, Function expressions. Utilizzando espressioni di funzione, possiamo assegnare funzioni alle variabili.

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

Funzioni in CoffeeScript

La sintassi della funzione in CoffeeScript è più semplice rispetto a JavaScript. In CoffeeScript, definiamo solo espressioni di funzione.

Il functionla parola chiave viene eliminata in CoffeeScript. Per definire una funzione qui, dobbiamo usare una freccia sottile (->).

Dietro le quinte, il compilatore CoffeeScript converte la freccia nella definizione della funzione in JavaScript come mostrato di seguito.

(function() {});

Non è obbligatorio utilizzare il file returnparola chiave in CoffeeScript. Ogni funzione in CoffeeScript restituisce automaticamente l'ultima istruzione nella funzione.

  • Se vogliamo tornare alla funzione chiamante o restituire un valore prima di raggiungere la fine della funzione, allora possiamo usare il return parola chiave.

  • Oltre alle funzioni in linea (funzioni che sono in una sola riga), possiamo anche definire funzioni multilinea in CoffeeScript. Poiché le parentesi graffe vengono eliminate, possiamo farlo mantenendo le rientranze adeguate.

Definizione di una funzione

Di seguito è riportata la sintassi per definire una funzione in CoffeeScript.

function_name = -> function_body

Esempio

Di seguito è riportato un esempio di una funzione in CoffeeScript. Qui abbiamo creato una funzione chiamatagreet. Questa funzione restituisce automaticamente l'istruzione in essa contenuta. Salvalo in un file con il nomefunction_example.coffee

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

Compilarlo eseguendo il seguente comando nel prompt dei comandi.

c:\>coffee -c function_example.coffee

Durante la compilazione, genera il seguente codice JavaScript. Qui puoi osservare che il compilatore CoffeeScript ha restituito automaticamente il valore della stringa nella funzione denominatagreet().

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

}).call(this);

Funzioni multilinea

Possiamo anche definire una funzione con più righe mantenendo i rientri invece delle parentesi graffe. Ma dobbiamo essere coerenti con il rientro che seguiamo per una linea in una funzione.

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

Durante la compilazione, il CoffeeScript sopra ti dà il seguente codice JavaScript. Il compilatore CoffeeScript acquisisce il corpo della funzione che abbiamo separato utilizzando i rientri e inserito tra le parentesi graffe.

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

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

}).call(this);

Funzioni con argomenti

Possiamo anche specificare argomenti in una funzione usando le parentesi come mostrato di seguito.

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

Durante la compilazione del file CoffeeScript sopra, verrà generato il seguente 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);

Invocare una funzione

Dopo aver definito una funzione, dobbiamo invocare quella funzione. Puoi semplicemente invocare una funzione inserendo una parentesi dopo il suo nome come mostrato nell'esempio seguente.

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

Durante la compilazione, l'esempio sopra ti dà il seguente 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);

Quando si esegue il codice CoffeeScript di cui sopra, genera il seguente output.

Sum of the two numbers is: 50

Richiamo di funzioni con argomenti

Allo stesso modo, possiamo invocare una funzione con argomenti passandole come mostrato di seguito.

my_function argument_1,argument_2
or
my_function (argument_1,argument_2)

Note - Mentre si richiama una funzione passandole argomenti, l'uso delle parentesi è opzionale.

Nell'esempio seguente, abbiamo creato una funzione denominata add() che accetta due parametri e lo abbiamo invocato.

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

Durante la compilazione, l'esempio sopra ti dà il seguente 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);

All'esecuzione, il codice CoffeeScript di cui sopra genera il seguente output.

Sum of the two numbers is: 30

Argomenti predefiniti

CoffeeScript supporta anche gli argomenti predefiniti. Possiamo assegnare valori predefiniti agli argomenti di una funzione, come mostrato nell'esempio seguente.

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()

Durante la compilazione, il CoffeeScript di cui sopra genera il seguente file 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);

Quando si esegue il codice CoffeeScript di cui sopra, genera il seguente output.

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