Onur Dayıbaşı

CV
none

JS Rest Nedir ?

Rest kavramı zaten bildiğimiz diğer dillerde de sıkça kullanılan bir kavram. Örneğin C, Java dillerinden daha uygulamanın başlangıcı olan main örnek vermek istiyorum.

Aşağıdaki C programında argc argüman sayısı, argv array içerisinde geçirilen argümanlardır. Burda program ilk çalıştırılırken dışarıdan geçirilecek parametreler bu argüman array içerisinde main fonskiyonuna geçirilir.

1//Sample C code
2int main( int argc, char *argv[] ) {

Aynısına birde Java programlama dilinde bakalım.

1//Sample Java code
2public class SampleJava {
3 public static void main(String[] args) {
4 for(int i = 0; i < args.length; i++) {
5 System.out.println(args[i]);
6 }
7 }
8}
9//Sample Code
10public class SampleJava {
11 public static void main(String ...args) {
12 for(int i = 0; i < args.length; i++) {
13 System.out.println(args[i]);
14 }
15 }
16}

Daha uygulama başlar başlamaz bu argümanları parametre olarak geçirir. Burda daha sonradan Java dilinde varargs(…) olarak 0 veya daha fazla parametreyi array olarak geçme olayına sağlattı.

Yukarıda anlattığım durum fonksiyonlara her zaman bir array parametre olarak geçirme ihtiyacımız olmuştur. Bu sırada bunun yazımını [] array ile yapmak yerine 3 nokta (…) ile yani rest ile yapmak bize ne gibi bir avantaj sağlar.

Gelin bunu bir örnek üzerinden anlatalım. Elimizde bir sayı array olsun ve bunun sonuçlarını bulmaya çalışalım.

1function sum(numbers){
2 let toplam=0; numbers.forEach(el=>toplam+=el);return toplam;
3}
4console.log(sum([2,4,6,5])); //17

Kodu Rest ile tekrar yazalım. aşağıdaki kodda görüldüğü gibi fonksiyonumuz değişmedi ama çağıran kısımda array nesnesine ihtiyacımız olmadan parametreleri istediğimiz gibi fonksiyona geçirebilmemize olanak sağladı.

1function sum(...numbers){
2 let toplam=0; numbers.forEach(el=>toplam+=el);return toplam;
3}
4console.log(sum(2,4,6,5))//17

Referanslar