"Uyarlama operatörü" terimi Ruby'den gelir, burada *
karakter (bazen "uyarlama" olarak adlandırılır - Jargon Dosyası girişine bakın ), bir argüman listesindeki bir girişin bir argüman listesini "emmesi" gerektiğini belirtmek için kullanılır.
CoffeeScript çok erken (bkz Yakut tarzı uyarıları kabul konuyu 16 ), ancak Douglas Crockford önerisiyle, sözdizimi değiştirildi *x
için x...
(bkz sonra birkaç hafta sorununu 45 ). Yine de, CoffeeScripters sözdizimine hala "uyarma" veya "uyarlama operatörü" olarak başvurur.
Gerçekte ne yaptıklarına gelince, uyarlamalar arguments
nesneyi, splatted argüman tüm "ekstra" argümanların bir dizisi haline gelecek şekilde dilimler . En önemsiz örnek
(args...) ->
Bu durumda, args
basitçe bir dizi kopyası olacaktır arguments
. Yapıştırılmış argümanlar standart argümanlardan önce, sonra veya arasında gelebilir:
(first, rest...) ->
(rest..., last) ->
(first, rest..., last) ->
İlk iki durumda, eğer fonksiyon 0-1 argüman alırsa, rest
boş bir dizi olacaktır. Son durumda, işlevin rest
boş olmaması için 2'den fazla argüman alması gerekir.
JavaScript, aynı ada sahip işlevler için birden fazla imzaya izin vermediğinden (C ve Java'nın yaptığı gibi), uyarılar, çeşitli sayıdaki argümanlarla başa çıkmak için büyük bir zaman tasarrufu sağlar.
arguments
call