Lihat tutorial CoffeeScript ini: http://jashkenas.github.com/coffee-script/
Saya tidak begitu mengerti untuk apa percikan itu. Konstruksi apa ini? Dari mana asalnya (secara historis)
sumber
Lihat tutorial CoffeeScript ini: http://jashkenas.github.com/coffee-script/
Saya tidak begitu mengerti untuk apa percikan itu. Konstruksi apa ini? Dari mana asalnya (secara historis)
Istilah "operator percikan" berasal dari Ruby, di mana *
karakter (kadang-kadang disebut "percikan" —lihat entri File Jargon ) digunakan untuk menunjukkan bahwa entri dalam daftar argumen harus "menyerap" daftar argumen.
CoffeeScript mengadopsi lingkar Ruby-gaya yang sangat dini (lihat masalah 16 ), tetapi pada saran Douglas Crockford, sintaks berubah dari *x
ke x...
beberapa minggu kemudian (lihat masalah 45 ). Namun demikian, CoffeeScripters masih mengacu pada sintaks sebagai "splat" atau "splat operator."
Mengenai apa yang sebenarnya mereka lakukan, percikan mengiris arguments
objek sedemikian rupa sehingga argumen yang dicipratkan menjadi larik dari semua argumen "ekstra". Contoh paling sepele adalah
(args...) ->
Dalam hal ini, args
hanya akan menjadi salinan array arguments
. Argumen percikan bisa muncul sebelum, sesudah, atau di antara argumen standar:
(first, rest...) ->
(rest..., last) ->
(first, rest..., last) ->
Dalam dua kasus pertama, jika fungsi menerima 0-1 argumen, rest
akan menjadi array kosong. Dalam kasus terakhir, fungsi perlu menerima lebih dari 2 argumen rest
agar tidak kosong.
Karena JavaScript tidak mengizinkan banyak tanda tangan untuk fungsi dengan nama yang sama (seperti yang dilakukan C dan Java), percikan adalah penghemat waktu yang sangat besar untuk menangani berbagai jumlah argumen.
console.log('this:',variable,'should be replaced with', another_variable);
jika Anda tahu python, args...
kira-kira mirip dengan *args
, karena memungkinkan Anda untuk memperlakukan parameter fungsi sebagai daftar
sebagai contoh:
concat = (args...) -> args.join(', ')
concat('hello', 'world') == 'hello, world'
concat('ready', 'set', 'go!') == 'ready, set, go!'
ini juga berfungsi dalam tugas:
[first, rest...] = [1, 2, 3, 4]
first == 1
rest == [2, 3, 4]
Percikan adalah istilah untuk penggunaan ...
operator untuk var-args (fungsi yang mengambil sejumlah variabel argumen).
Saya pikir itu adalah gula sintaksis untuk objek argumen javascript.
Idenya mungkin datang dari operator percikan*
Ruby .
(x, rest...) ->
, rest
wont contains x
, arguments
does.
arguments
+call
: stackoverflow.com/questions/17380315/…*args
didef foo(*args):
., ...args
dinamai parameter istirahat dan berkembang...args
menjadi panggilan fungsi / array / objek literal dinamai menyebar