Чи Groovy дотримується принципу листування Tennent?


15

Ось цікаве обговорення принципу листування Теннента та короткий опис Ніла Гафтера :

Принцип диктує, що вираз або вислів, коли його завершують у закритій формі та негайно викликають, має мати те саме значення, що і раніше, ніж завернути у закриття. Будь-яка зміна семантики при загортанні коду в закриття, ймовірно, є недоліком у мові.

Чи відповідає Groovy мова цьому принципу?

Відповіді:


4

Не зовсім, але майже. Усі змінні, доступні у зовнішній області, доступні у закритті, включаючи "це" та члени даних класу. Однак returnоператор повертається із закриття, а не із функції, що додає. Я навіть не впевнений, що це порушення TCP; Я не знаю жодної мови returnу стилі С, де під час закриття повертається із вкладеної області. Я не мав жодних сюрпризів, коли використовував закриття Groovy.


Було б -1, якщо я маю достатню кількість представників, дивіться далі за посиланням від OP: programmers.stackexchange.com/questions/116395/…
sq33G
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.