CoffeeScript - İşlevler

İşlev, programınızın herhangi bir yerinde çağrılabilen yeniden kullanılabilir kod bloğudur. Bu, aynı kodu tekrar tekrar yazma ihtiyacını ortadan kaldırır. Programcılara modüler kodlar yazmada yardımcı olur.

İşlevler, bir programcının büyük bir programı birkaç küçük ve yönetilebilir işleve bölmesine izin verir.

Genel olarak JavaScript kullanarak iki tür işlev tanımlayabiliriz - named functions, işlev adı gövdeli normal işlevler ve, Function expressions. Fonksiyon ifadelerini kullanarak değişkenlere fonksiyon atayabiliriz.

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

CoffeeScript'te İşlevler

CoffeeScript'teki işlev sözdizimi, JavaScript'e kıyasla daha basittir. CoffeeScript'te sadece fonksiyon ifadelerini tanımlıyoruz.

functionCoffeeScript'te anahtar sözcük kaldırılır. Burada bir işlevi tanımlamak için ince bir ok kullanmalıyız (->).

CoffeeScript derleyicisi, perde arkasında, oku aşağıda gösterildiği gibi JavaScript'teki işlev tanımına dönüştürür.

(function() {});

Kullanmak zorunlu değildir returnCoffeeScript'te anahtar kelime. CoffeeScript'teki her işlev, işlevdeki son ifadeyi otomatik olarak döndürür.

  • Çağıran işleve dönmek veya işlevin sonuna ulaşmadan önce bir değer döndürmek istiyorsak, o zaman kullanabiliriz. return anahtar kelime.

  • Satır içi işlevlere (tek satırlı işlevler) ek olarak, CoffeeScript'te çok satırlı işlevleri de tanımlayabiliriz. Küme parantezleri ortadan kalktığı için uygun girintileri koruyarak yapabiliriz.

Bir Fonksiyonun Tanımlanması

Aşağıda, CoffeeScript'te bir işlevi tanımlamanın sözdizimi verilmiştir.

function_name = -> function_body

Misal

Aşağıda, CoffeeScript'te bir işlev örneği verilmiştir. Burada adında bir fonksiyon oluşturdukgreet. Bu işlev, içindeki ifadeyi otomatik olarak döndürür. Adıyla bir dosyaya kaydedinfunction_example.coffee

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

Komut isteminde aşağıdaki komutu çalıştırarak derleyin.

c:\>coffee -c function_example.coffee

Derleme sırasında aşağıdaki JavaScript kodunu üretir. Burada, CoffeeScript derleyicisinin adlı işlevdeki dize değerini otomatik olarak döndürdüğünü görebilirsiniz.greet().

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

}).call(this);

Çok satırlı İşlevler

Küme parantezi yerine girintileri koruyarak birden çok satır içeren bir işlevi de tanımlayabiliriz. Ancak bir fonksiyon boyunca bir çizgi için izlediğimiz girintiyle tutarlı olmalıyız.

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

Derleme sırasında, yukarıdaki CoffeeScript size aşağıdaki JavaScript kodunu verir. CoffeeScript derleyicisi, girintiler kullanarak ayırdığımız ve kaşlı ayraçların arasına yerleştirdiğimiz işlevin gövdesini yakalar.

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

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

}).call(this);

Bağımsız Değişkenlerle İşlevler

Aşağıda gösterildiği gibi parantez kullanarak bir fonksiyondaki argümanları da belirtebiliriz.

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

Yukarıdaki CoffeeScript dosyasını derlerken, aşağıdaki JavaScript'i oluşturacaktır.

// 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);

Bir Fonksiyonu Çağırmak

Bir işlevi tanımladıktan sonra, o işlevi çağırmamız gerekir. Aşağıdaki örnekte gösterildiği gibi, isminden sonra parantez koyarak bir işlevi çağırabilirsiniz.

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

Derleme üzerine, yukarıdaki örnek size aşağıdaki JavaScript'i verir

// 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);

Yukarıdaki CoffeeScript kodu çalıştırıldığında, aşağıdaki çıktıyı üretir.

Sum of the two numbers is: 50

Bağımsız Değişkenlerle İşlevleri Çağırma

Aynı şekilde, aşağıda gösterildiği gibi argümanlara sahip bir işlevi ona ileterek çağırabiliriz.

my_function argument_1,argument_2
or
my_function (argument_1,argument_2)

Note - Bir fonksiyona argümanlar ileterek çağrılırken parantez kullanımı isteğe bağlıdır.

Aşağıdaki örnekte, adında bir fonksiyon oluşturduk add() bu iki parametreyi kabul ediyor ve biz onu çağırdık.

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

Derleme üzerine, yukarıdaki örnek size aşağıdaki JavaScript'i verir.

// 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);

Yürütüldüğünde, yukarıdaki CoffeeScript kodu aşağıdaki çıktıyı üretir.

Sum of the two numbers is: 30

Varsayılan Bağımsız Değişkenler

CoffeeScript de varsayılan argümanları destekler. Aşağıdaki örnekte gösterildiği gibi, bir fonksiyonun argümanlarına varsayılan değerler atayabiliriz.

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

Derleme sırasında, yukarıdaki CoffeeScript aşağıdaki JavaScript dosyasını oluşturur.

// 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);

Yukarıdaki CoffeeScript kodu çalıştırıldığında, aşağıdaki çıktıyı üretir.

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