Відповіді:
У програмі цукор зазвичай посилається на ті солодкі доповнення, в основному це ярлики, які роблять деякі конструкції простішими для набору та читання (останні, на практиці, є найважливішими протягом життєвого циклу вашої програми).
У Вікіпедії є визначення синтаксичного цукру, але слід зауважити, що не весь цукор, по суті, синтаксичний (не всі останні солодкі доповнення були лише змінами компілятора).
Ось кілька прикладів:
i++
та ++i
). Єдина їх мета - уникнути написання додаткової заяви. Вони чистий цукор.+=
, |=
, &=
І т.д. зроблені з того ж виду цукру.Вважається, що Java вважається недостатньо стислою, особливо порівняно із сучасними мовами. Ось чому вітаються ті доповнення, які допомагають зробити код швидшим для читання.
На закінчення я просто зазначу, що хоча брак цукру може зробити вашу програму жирною, надлишок цукру, що призводить до багатьох різних способів писати одні й ті ж речі, може зробити вашу мову легкою, а вашу програму менш узгодженою та складнішою у підтримці . Інший вид цукру, цукор API, - це найчастіше чума, яка ускладнює сприйняття API, особливо якщо він зроблений з доповнень (наприклад, перевантаження).
Це, як говориться, знежирення відноситься або до
Здається, що "Desugaring" має дуже специфічне значення в Java 8. Здається, що термін "загальний" для вираження різних способів вираз лямбда може бути пов'язаний з фактичним конкретним викликом методу.
Цей документ про "Переклад лямбдаських виразів", здається, містить реальну інформацію про те, що відбувається, якщо вас цікавить конкретна інформація.
Ключова фраза з документа:
Перший крок перекладу лямбда в байт-код - це знешкодження тіла лямбда в метод.
Взагалі, «знежирення» в javac дозволяє представити деякі мовні особливості з попередніми. Це дозволяє представляти їх у байт-коді без великих змін у форматі файлу класу. Також з цієї причини задній компілятор компілятора є більш стабільним, ніж передній. Це не означає, що кожна нова мовна особливість - це лише синтаксичний цукор, як це, безумовно, не стосується лямбдів та посилань на методи. Є більше прикладів "знешкодження" у компіляторі:
Ви також можете дослідити, що відбувається з перемикачем String, введіть стирання, ...