Jawaban:
sugar , dalam pemrograman, biasanya mengacu pada tambahan manis , kebanyakan pintasan, yang membuat beberapa konstruksi lebih mudah untuk diketik dan dibaca (yang terakhir, dalam praktiknya, yang paling penting selama siklus hidup program Anda).
Wikipedia memiliki definisi gula sintaksis tetapi Anda harus mencatat bahwa tidak semua gula, pada dasarnya, sintaksis (tidak semua tambahan manis baru-baru ini hanyalah perubahan penyusun).
Berikut beberapa contoh:
i++
dan ++i
). Satu-satunya tujuan mereka adalah untuk menghindari penulisan pernyataan tambahan. Itu gula murni.+=
, |=
, &=
, Dll terbuat dari jenis gula yang sama.Java secara luas dipandang tidak cukup ringkas, terutama dibandingkan dengan bahasa modern. Itulah mengapa penambahan yang membantu membuat kode lebih cepat dibaca.
Sebagai penutup, saya hanya akan mencatat bahwa meskipun kekurangan gula dapat membuat program Anda gemuk, kelebihan gula, yang mengarah ke berbagai cara untuk menulis hal yang sama, dapat membuat bahasa Anda mual dan program Anda kurang koheren dan lebih sulit untuk dipertahankan. . Jenis gula lainnya, gula API, paling sering merupakan wabah yang membuat API lebih sulit untuk dipahami, terutama jika dibuat dengan tambahan (misalnya kelebihan muatan).
Ini dikatakan, desugaring mengacu pada
"Desugaring" tampaknya memiliki arti yang sangat spesifik di Java 8. Tampaknya menjadi istilah yang mencakup semua untuk mengekspresikan berbagai cara ekspresi lambda dapat diikat ke pemanggilan metode konkret yang sebenarnya.
Dokumen tentang "Terjemahan Ekspresi Lambda" ini tampaknya memiliki detail nyata tentang apa yang terjadi jika Anda tertarik secara spesifik.
Frase kunci dari dokumen:
Langkah pertama menerjemahkan lambda ke dalam bytecode adalah mendesain badan lambda menjadi sebuah metode.
Secara umum, "desugaring" di javac memungkinkan merepresentasikan beberapa fitur bahasa dengan fitur yang sudah ada sebelumnya. Hal ini memungkinkan untuk merepresentasikannya dalam bytecode tanpa membuat perubahan besar pada format file kelas. Juga karena alasan ini bagian belakang kompiler lebih stabil daripada bagian depan. Ini tidak berarti bahwa setiap fitur bahasa baru hanyalah gula sintaksis, seperti yang jelas bukan kasus lambda dan referensi metode. Ada lebih banyak contoh "desugaring" di compiler:
Anda juga dapat menyelidiki apa yang terjadi dengan sakelar String, penghapusan tipe, ...