Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 15 16 17 18 19 [20] 21 22 23 24 .. 41   вперед  Ctrl
 Re: RAD Studio 10.3 Rio  [new]
Фэйтл Эра
Member

Откуда:
Сообщений: 627
bk0010
Фэйтл Эра
auto & a = c.b.a; // Вместо with
Этого "вместо with" мало, with еще хорошо выделяет блоки программы, с ним код читать удобнее (если, конечно, писать с умом, а не что-то типа
with a,b,c do e[f]=g[f]
)

Пожалуйста:
	{ auto & a = c.b.a; // Вместо with
	  a.i += a.j;   // с.b.a.i += с.b.a.j;
	  a.j++;        // с.b.a.j++;
        }
И блок есть, и видно, что за переменные, и отладчик не "молчит", как с with.
13 дек 18, 22:13    [21763490]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Vlad F
Member

Откуда:
Сообщений: 808
Фэйтл Эра,

Ну а что же ты, друже, вот на это вот 21759706 промолчал?
13 дек 18, 22:19    [21763493]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Квейд
Member

Откуда: Kyiv, Ukraine
Сообщений: 5214
люблю WITH за такие маленькие процедуры-хелперы, например


  procedure PrepareComparisonData;
  begin
    with CreateStoredProc(FOraSession, 'PKG_FILES.PREPARECOMPARISONDATA') do
      try
        Execute
      finally
        Free
      end
  end;

  procedure UpdateComparsionStatus(ACounter: Integer; AStatus: Integer);
  begin
    with CreateQuery(FOraSession, Format(SQL_UPDATESTATUS, [AStatus, ACounter])) do
      try
        Execute
      finally
        Free
      end
  end;
14 дек 18, 11:49    [21763844]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Vlad F
Member

Откуда:
Сообщений: 808
Не пойму о чем спор столько времени, ведь, никто же, как выяснилось ничего не отнимает.
Вы бы лучше за добавление оператора using проголосовали, вот это была бы тема.))
14 дек 18, 12:13    [21763878]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 12997
FibPlus для Delphi Rio
https://github.com/madorin/fibplus
14 дек 18, 12:40    [21763918]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 12997
Квейд,

+1
14 дек 18, 17:35    [21764274]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
rgreat
Member

Откуда:
Сообщений: 5006
Квейд,

  procedure PrepareComparisonData;
  begin
    var Proc:=CreateStoredProc(FOraSession, 'PKG_FILES.PREPARECOMPARISONDATA');
    try
      Proc.Execute
    finally
      Proc.Free
    end
  end;
Так теперь даже лучше. Ибо проще отлаживать чем с with.
14 дек 18, 17:45    [21764294]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10926
Vlad F
Вы бы лучше за добавление оператора using проголосовали
Что за оператор такой?
14 дек 18, 18:06    [21764321]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3984
_Vasilisk_
Vlad F
Вы бы лучше за добавление оператора using проголосовали
Что за оператор такой?

Аналог with, только с free в конце:

using(dataset.create) do
begin
Field...
end
14 дек 18, 18:20    [21764335]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Vlad F
Member

Откуда:
Сообщений: 808
JaDi,

Автоматическим скрытым гарантированным Free, прошу заметить.))
14 дек 18, 18:29    [21764343]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
JaDi
Member

Откуда: Сызрань, Россия
Сообщений: 3984
Vlad F,

это всё дядька Хейлсберг скоммуниздил свои же идеи с with, когда сбежал на темную сторону в Майкрософт. Прямо замкнутый круг.
14 дек 18, 18:34    [21764345]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Vlad F
Member

Откуда:
Сообщений: 808
JaDi,

Ты мне это рассказываешь?)) Но и в конце концов не важно кто у кого скоммуниздил,
важно, что c#-сты с удовольствием пользуются им второй десяток лет и смеются над нами.
14 дек 18, 18:41    [21764353]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
rgreat
Member

Откуда:
Сообщений: 5006
Vlad F
JaDi,

Автоматическим скрытым гарантированным Free, прошу заметить.))
Только причем тут using?
Это же свойство гарбаж коллектора а не данного оператора.

инлайновый var или with с интерфейсом - тоже самое делает.
14 дек 18, 20:25    [21764415]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Vlad F
Member

Откуда:
Сообщений: 808
rgreat,

Это гарантированное защищенное свойство данного оператора.
То, чего, на мой взгляд, как раз не хватает для обоснования дальнейшей поддержки with.
14 дек 18, 20:37    [21764424]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
defecator
Member

Откуда:
Сообщений: 39268
Vlad F
rgreat,

Это гарантированное защищенное свойство данного оператора.
То, чего, на мой взгляд, как раз не хватает для обоснования дальнейшей поддержки with.

да, костылёк для тех, кто не умеет и не желает знать про выделение памяти и управляемое освобождение
14 дек 18, 21:48    [21764469]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6179
defecator
Vlad F
rgreat,

Это гарантированное защищенное свойство данного оператора.
То, чего, на мой взгляд, как раз не хватает для обоснования дальнейшей поддержки with.

да, костылёк для тех, кто не умеет и не желает знать про выделение памяти и управляемое освобождение
Это RAII, которого в Дельфе недовезли.

Вместо удаления with и добавления using, могли бы просто доработать with с таким поведением. Синтаксис не портит, и толк бы был
14 дек 18, 23:40    [21764551]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
rgreat
Member

Откуда:
Сообщений: 5006
Siemargl,

Сломалась бы обратная совместмость.
15 дек 18, 00:12    [21764570]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Beltar
Member

Откуда:
Сообщений: 199
автор
простой пример - например есть класс, у которого есть свойство. Экземпляр данного класса доступен из разных потоков, и данные потоки изменяют данное свойство.


Я, конечно, дико извиняюсь, но если вместо property я напрямую вызову его геттер/сеттер, то не изменится абсолютно ничего. Более того, код станет понятнее.
Что же касается потокобезопасности, то если ты можешь с помощью синтаксической конструкции поместить код некоторого метода в защищенную секцию, то логично было бы просто ввести директиву, которая делала бы это для любого метода. Это было бы реально круто. Покажи, как в Delphi это сделать, ведь из твоих слов следует, что он это умеет.

автор
ты вообще понимаешь разницу между strict private / private / strict protected / protected / public / published


В исполнимом файле никаких private или public не существует.

автор
Ты бы сначала посмотрел, что такое Модула


Покажите мне, что есть в Модуле, чего нет в Object Pascal. При этом с эстетической точки зрения весь это полубейсиковый стиль IF - ENDIF меня раздражает. Может кого-то begin-end бесят, но тот же параметризованный Exit из Delphi 2009 их количество может сокращать радикально.

Что касается Оберона, то самое смешное в нем - это внезапное осознание, что вместо MyClass.Method можно писать Method(C:TMyClass); На самом деле это ОЧЕНЬ важное открытие, в котором заключена вся боль и идиотия ООП, как религии. На практике получается, что использование класса зачастую не отличается от использования структуры, т. к. существует некая внешняя, по отношению к классу логика. На практике на это либо забивают (если класс конечный и вне рамок проекта нигде больше не понадобится), либо пишут интерфейсы, позволяющие дополнить функционал класса, насколько это можно предугадать. Ну логично, что класс TDocument может иметь интерфейсы ISafe и ILoad.

Вирт поступил предельно просто, он оставил только подход "забить". Но при этом забыл, что синтаксис вида MyClass.Method появился потому, что человек сначала получает сущность, а потом хочет иметь список того, что может с ней сделать, а не наоборот, так что есть 100500 методов и поди найди, какие из них вообще предназначены для имеющейся сущности.

BTW, мы привыкли говорить на SVO-языках, к ним и русский, и английский относятся: "Я пинаю мяч", но языков со схемой SOV "Я мяч пинаю" в мире даже больше. И, возможно, неспроста.

А так да, на 30+ стр. до фига идей изложено. Там, правда, и смысл всего упражнения был в том, чтобы создать язык с минимально возможным количеством идей.

автор
Основной минус в with - не к чему приписать точку что бы увидеть в IDE какие свойства/методы имеются.


Когда Шариат писали, мины на дорогах не ставили. А когда with придумали, никаких Alt-пробел и списка методов не существовало. Вот поэтому и вопрос, а нужен ли этот источник глюков и мата сейчас.

автор
Это RAII, которого в Дельфе недовезли.


Вот не понимаю, как технически может быть RAII, когда у тебя экземпляр надо в куче создавать. Хоть Create, хоть New, всё равно напишешь.

автор
c#-сты с удовольствием пользуются им второй десяток лет и смеются над нами


А уж как я смеюсь над поделками MS.
17 дек 18, 10:15    [21765682]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
vavan
Member

Откуда: Казань
Сообщений: 3269
Beltar
не понимаю, как технически может быть RAII, когда у тебя экземпляр надо в куче создавать
а в чем сложности с пониманием? главное что инициализация с конструкцией и наоборот а уж что за ресурс и где он - дело десятое
Beltar
Хоть Create, хоть New, всё равно напишешь
непонятно, что-то писать таки приходится при любом раскладе
17 дек 18, 10:44    [21765698]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Василий 2
Member

Откуда:
Сообщений: 555
Я, как старовер, против новых неявных действий компилятора. И так с управляемыми типами хватает мороки при необходимости подтянуть производительность. Неявные try-finally в коде - не самая очевидная вещь. Лучше уж тогда пусть в RTL добавят какой-нибудь полуручной сборщик мусора или интерфейсную обертку, типа with AddToAutoFreeList<TSomeClass>(TSomeClass.Create) do
17 дек 18, 10:49    [21765702]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
DetSimen
Member

Откуда: Новосибирск
Сообщений: 262
Leonid

Вангую громкий пердеж от древних стариков-паскалистов типа:
- Верните нам предварительное объявление переменных!!! Это наше все!!! :D


Я древний, древнее некуда, с ТурбоПаскаля 5.5 начинал, не буду пердеж падымать, мне всё нравица.
17 дек 18, 10:52    [21765704]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
alekcvp
Member

Откуда:
Сообщений: 1368
Василий 2
Лучше уж тогда пусть в RTL добавят какой-нибудь полуручной сборщик мусора или интерфейсную обертку, типа with AddToAutoFreeList<TSomeClass>(TSomeClass.Create) do

Таких решений можно найти готовых легко. Да и самому написать на раз.
17 дек 18, 11:15    [21765725]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 4618
rgreat
Vlad F
JaDi,

Автоматическим скрытым гарантированным Free, прошу заметить.))
Только причем тут using?
Это же свойство гарбаж коллектора а не данного оператора.

инлайновый var или with с интерфейсом - тоже самое делает.
не делал собака, ждёт завершения процы :-(
17 дек 18, 11:21    [21765731]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
rgreat
Member

Откуда:
Сообщений: 5006
kealon(Ruslan),

Думаю в 10.3 уже не будет ждать завершения.
17 дек 18, 11:59    [21765768]     Ответить | Цитировать Сообщить модератору
 Re: RAD Studio 10.3 Rio  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6179
нечаянно наткнулся.

99% из осуждаемых новинок однако давненько есть в ABC Pascal
18 дек 18, 04:42    [21766532]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 15 16 17 18 19 [20] 21 22 23 24 .. 41   вперед  Ctrl
Все форумы / Delphi Ответить