четверг, 28 сентября 2017 г.

Про immutable

Последнее время очень хочется "сказать компилятору", что объект неизменяемый.

Что-то вроде:

type TPoint = class
 public
  X : Integer;
  Y : Integer;
  costructor Create(aX, aY: Integer);
end; // TPoint

...

Var [Immutable] p : TPoint;

...

p := TPoint.Create(10, 20);
p.X := 30; // - тут компилятор ругается

Ну и естественно методы хочется метить const/noconst.

Я в своих скриптах такое уже почти сделал.

Почти - потому, что компилятор пока не все случаи отлавливает. Но это специфика реализации компилятора скриптов. Слишком уж он гибок. И местами на duckTyping заточен.

Но хотя бы в runTime - ругается. Если в compileTime не распознал.

1 комментарий:

  1. Видите смысл в Immutable?
    Если есть желание, взгляните на Immutable.js, а также здесь после сентенции "Неизменяемые данные являются ключевым аспектом архитектуры Redux". Думаю, материал статьи, который я нахожу превосходным, может показаться полезным и Вам, особенно в части immutable и функционального подхода в императивных языках.

    ОтветитьУдалить