среда, 8 мая 2013 г.

Что я бы сделал в компиляторе

Я бы сделал ключевое слово, которое говорит, что у нас вот в этом методе Self это var ;-) А дальше - такая гибкость в теле получится :-)

Тогда например FreeAndNil можно "в объектном стиле написать".

Ну и естественно контроллировал бы на стороне вызова метода - можно ли объект как var передавать или нет.

В общем - "синтаксический сахар", но по-моему - удобно. Да и сразу нормальная проверка типов. А не уродство типа нетипизированного var.

Необычно - да. Но чем на самом деле Self лучше/хуже других параметров? По-моему - ничем. И если объявлен как var - так все знают о чём речь и на что идут. И вызывать естественно давать в том месте где то что станет Self - это неконстантный объект. Т.е. переменная, член или параметр без const.

И сразу кстати кривизна типа:
 for i := 0 to L.Count - 1 do
  L.Items[i].Free;


-- рассосётся.

Ссылки по теме:
http://habrahabr.ru/post/177431/
http://18delphi.blogspot.com/2013/04/blog-post_714.html
http://www.gunsmoker.ru/2009/04/freeandnil-free.html
http://18delphi.blogspot.com/2013/05/blog-post_9464.html

P.S. хотя всё это при введении ARC - теряет смысл. Хотя к ARC я отношусь с неким предубеждением. Я сам привык следить за счётчиками ссылок. Может быть я - "динозавр". Одно могу сказать ARC - по-любому - УЖ куда лучше, чем СБОРКА МУСОРА.

Комментариев нет:

Отправить комментарий