Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3      [все]
 const параметры  [new]
smskin
Member [заблокирован]

Откуда: Россия
Сообщений: 439
Не до конца понятен смысл const параметров в delphi.
Ну то что изменять их значение внутри процедуры нельзя - это понятно.
Непонятно передаются ли const параметры по ссылке или по значению?
9 сен 08, 13:02    [6163307]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62926
Это дело компилятора, чаще всего по ссылке.

--
http://www.podgoretsky.com
9 сен 08, 13:07    [6163331]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
Ega
Member

Откуда: Дубна
Сообщений: 4531
smskin
Не до конца понятен смысл const параметров в delphi.
Ну то что изменять их значение внутри процедуры нельзя - это понятно.
Непонятно передаются ли const параметры по ссылке или по значению?


А какая разница, каким образом там в кишках это дело устроено? Причем, насколько я понимаю, это дело может меняться при изменении компилятора.
9 сен 08, 13:13    [6163367]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
x77
Member

Откуда:
Сообщений: 1747
smskin
Ну то что изменять их значение внутри процедуры нельзя - это понятно.


если передавался объект - его свойства менять можно, всегда.

официальная документация утверждает, что объявление параметра константой служит для неких оптимизаций, проводимых компилятором, и касающихся структурированных и строковых типов. можно, конечно, попытаться прикинуть, в чём могли бы заключаться такие оптимизации, только вот нафига?

с точки зрения более высокого уровня, т.е. концепций ООП, такие параметры нужны для исключения логических ошибок на этапе написания кода. например, чтобы какой особо одарённый пионер не вздумал менять дескриптор подключения к СУБД или там оконный хэндл.
9 сен 08, 13:30    [6163475]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
vunder
Member

Откуда: СПб
Сообщений: 121
Дело не только в логике программного кода. При всей вашей полемике вы забываете, что передача параметров в подпрограмму возможно ТОЛЬКО 2 способами: по значению и по ссылке. В первом случае значение переменной копируется в стэк и передается через него в подпрограмму. При передачи по указателю в стэк копируется только ссылка на переменную. В Delphi/Pascal для объявления передачи параметров по значеню не надо указывать никаких дополнительный директив. Использование const и var определят рабочу с переменными через указатели. Для программиста это всего лишь будет означать некоторые особенност испольвания таких переменных, а вот для компилятора - совсем другое дело.
P.S. Маленький совет: все переменный, размер которых превышает 4 байта лучше объявлять как const (ну или var, если значение будет меняться). В этом случае, например при передачи строковых параметров, будет расходоваться меньше памяти, т.к. при передачи больших переменных по значению они будут полностью дублироваться.
9 сен 08, 15:46    [6164668]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
vunder
Member

Откуда: СПб
Сообщений: 121
Кстати, передача объекта всегда производиться по указателю. Единственный нюанс - директива var. Если объект был передан с ее помощью, то изменение параметра внутри подпрограммы изменит и его значение в основном коде.
9 сен 08, 15:49    [6164710]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
alex0
Member

Откуда: 127.0.0.1
Сообщений: 7203
vunder
Кстати, передача объекта всегда производиться по указателю. Единственный нюанс - директива var. Если объект был передан с ее помощью, то изменение параметра внутри подпрограммы изменит и его значение в основном коде.

А если объект был передан без var, то изменение параметра внутри подпрограммы все равно изменит и его значение в основном коде
procedure TMainForm.Button1Click(Sender: TObject);
begin
  (Sender as TButton).Caption := 'Кликнули по мне';
end;
9 сен 08, 17:04    [6165373]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
Альт
Member

Откуда: Сибирь
Сообщений: 4581
const - это передача по ссылке для структур... а объект - это и так ссылка... его передавай хоть так, хоть эдак... в 32-ух битой адресации памяти при 32 битных регистрах разницы не будет...
зы: попробуйте передать в функцию 4 гигабайтный массив не по ссылке )
9 сен 08, 17:19    [6165487]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 53452
Блог
Ega
А какая разница, каким образом там в кишках это дело устроено?

Любопытно, как Вы отнесетесь к врачу, исповедующему этот подход.

x77
с точки зрения более высокого уровня, т.е. концепций ООП, такие параметры нужны для исключения логических ошибок на этапе написания кода.

Бред.

vunder
При всей вашей полемике вы забываете, что передача параметров в подпрограмму возможно ТОЛЬКО 2 способами: по значению и по ссылке.

Чтобы утверждение не было бредом, добавляйте "в Delphi".

vunder
В первом случае значение переменной копируется в стэк

Бред.

vunder
Использование const и var определят рабочу с переменными через указатели.

Ну-ну.

vunder
В этом случае, например при передачи строковых параметров, будет расходоваться меньше памяти, т.к. при передачи больших переменных по значению они будут полностью дублироваться.

Бред.
9 сен 08, 17:38    [6165644]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
Гаджимурадов Рустам
Member

Откуда:
Сообщений: 59003

softwarer, чем обвинить всех в бреде (с чем я не спорю, т.к. действительно бред),
лучше бы дали краткое описание своего видения вопроса. Ну или ссылку на одно
из многочисленных объяснений. :)


Posted via ActualForum NNTP Server 1.4

9 сен 08, 17:54    [6165739]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 53452
Блог
Гаджимурадов Рустам
лучше бы дали краткое описание своего видения вопроса.

Оно уже давно приведено в топике: официальная документация утверждает, что объявление параметра константой служит для неких оптимизаций, проводимых компилятором, и касающихся структурированных и строковых типов.
9 сен 08, 19:31    [6166091]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
Альт
Member

Откуда: Сибирь
Сообщений: 4581
softwarer
vunder
При всей вашей полемике вы забываете, что передача параметров в подпрограмму возможно ТОЛЬКО 2 способами: по значению и по ссылке.

Чтобы утверждение не было бредом, добавляйте "в Delphi".

вот... тут у меня вопрос... предполагаю, появление в ответе что-то типа функциональных языков.... но чем теперь обозначать "Delphi"? для меня это rad
9 сен 08, 20:02    [6166154]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62926
автор
официальная документация утверждает, что объявление параметра константой служит для неких оптимизаций, проводимых компилятором, и касающихся структурированных и строковых типов.

Вообще то это не цель, а цель
автор
A constant (const) parameter is like a local constant or read-only variable. Constant parameters are similar to value parameters, except that you can't assign a value to a constant parameter within the body of a procedure or function, nor can you pass one as a var parameter to another routine. (But when you pass an object reference as a constant parameter, you can still modify the object's properties.)

А оптимизация побочный эффект
автор
Using const allows the compiler to optimize code for structured- and string-type parameters. It also provides a safeguard against unintentionally passing a parameter by reference to another routine.

При указании данного модификатора, компилятор может сохранить несколько тактов, не делая некоторых проверок и сохранений, которые пришлось бы сделать, при модификаторе var. Естественно это действует для структурных типов и строк.

--
http://www.podgoretsky.com
9 сен 08, 20:39    [6166206]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 53452
Блог
Anatoly Podgoretsky
Вообще то это не цель, а цель ... А оптимизация побочный эффект

Ровно наоборот. То, что Вы называете целью, если рассмотреть его именно как "цель, к которой надо стремиться", мягко говоря, нафиг не нужно. На самом деле это не цель, а нечто вроде подсказки компилятору - добровольно принимаемое обязательство, которое позволяет компилятору сгенерировать более эффективный код.

Собственно, рано или поздно компиляторы научатся самостоятельно распознавать возможность такой оптимизации, и модификатор const станет устаревшим. Однако, как мы знаем, существуют возможности работы через указатели, что воздвигает перед подобной автоматикой серьезные препятствия.
9 сен 08, 21:30    [6166266]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: const параметры  [new]
и все-таки
Guest
А как на самом деле передаются const параметры? Если функция с const параметром в dll, и надо вызвать ее из C++. На стеке должно быть значение или адрес?
23 май 12, 11:20    [12599309]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 53452
Блог
и все-таки
А как на самом деле передаются const параметры? Если функция с const параметром в dll, и надо вызвать ее из C++. На стеке должно быть значение или адрес?

Подозреваю, это зависит ещё и от конвенции вызовов. В обычной для дельфи register все параметры размером больше int-а передаются по ссылке, а дальше пролог функции по необходимости копирует значение в локальную память. Модификатор const собственно отменяет такое копирование, позволяя действовать прямо по переданному указателю. Если написать const например с int-параметром - подозреваю, он всё равно будет передаваться по значению, то есть игнорируя const. Не пробовал. А как оно будет вести себя, например, в cdecl - вопрос отдельной интересности.
23 май 12, 12:05    [12599839]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
Квейд
Member

Откуда: Kyiv, Ukraine
Сообщений: 5064
Anatoly Podgoretsky
Это дело компилятора, чаще всего по ссылке.
всегда по ссылке
23 май 12, 12:06    [12599847]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
Квейд
Member

Откуда: Kyiv, Ukraine
Сообщений: 5064
x77
smskin
Ну то что изменять их значение внутри процедуры нельзя - это понятно.


если передавался объект - его свойства менять можно, всегда.

официальная документация утверждает, что объявление параметра константой служит для неких оптимизаций, проводимых компилятором, и касающихся структурированных и строковых типов. можно, конечно, попытаться прикинуть, в чём могли бы заключаться такие оптимизации, только вот нафига?

с точки зрения более высокого уровня, т.е. концепций ООП, такие параметры нужны для исключения логических ошибок на этапе написания кода. например, чтобы какой особо одарённый пионер не вздумал менять дескриптор подключения к СУБД или там оконный хэндл.
Вы упустили очень важный момент. Объявление параметра константой и передача оного по ссылке в первую очередь необходимо для исключения копирования "длинных" параметров (типа строк) в стек вызываемой процедуры.
23 май 12, 12:09    [12599884]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 53452
Блог
Квейд
Объявление параметра константой и передача оного по ссылке в первую очередь необходимо для исключения копирования "длинных" параметров (типа строк) в стек вызываемой процедуры.

Строки не копируются в стек вызываемой процедуры. У них при отсутствии const просто инкрементируется счётчик ссылок.
23 май 12, 12:10    [12599897]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
spider13
Member

Откуда: http://spider13.net
Сообщений: 944
softwarer,

даже у wideString?
23 май 12, 12:12    [12599917]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62926
spider13
softwarer,

даже у wideString?

у wideString нет счетчика ссылок.
23 май 12, 12:18    [12599970]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
Квейд
Member

Откуда: Kyiv, Ukraine
Сообщений: 5064
Квейд
Anatoly Podgoretsky
Это дело компилятора, чаще всего по ссылке.
всегда по ссылке
Прошу меня извинить, не всегда.
23 май 12, 12:19    [12599985]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62926
Квейд
Anatoly Podgoretsky
Это дело компилятора, чаще всего по ссылке.
всегда по ссылке

Можешь привести ссылку на справку, где такое сказано?
23 май 12, 12:21    [12600004]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62926
На эксперименты или на анализ ассемблерного кода можешь не ссылаться.
23 май 12, 12:22    [12600025]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
spider13
Member

Откуда: http://spider13.net
Сообщений: 944
Anatoly Podgoretsky
spider13
softwarer,

даже у wideString?

у wideString нет счетчика ссылок.


Правильно, что в таком случае увеличивать)

Вообще, насколько я понял, то прямые значения передаются для числовых типов, для остальных же это ссылка, но могу ошибаться.
23 май 12, 12:26    [12600076]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
Квейд
Member

Откуда: Kyiv, Ukraine
Сообщений: 5064
Anatoly Podgoretsky
На эксперименты или на анализ ассемблерного кода можешь не ссылаться.
12599985
23 май 12, 12:39    [12600211]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62926
Я раньше написал.
23 май 12, 13:01    [12600443]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: const параметры  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 12230
Извините, что поднимаю тему старую, просто не вижу смысла создавать новую.
Вопрос опять же по const.
Почитал, что разницы нет в этом коде:
procedure RestoreBarManagerStream(const BarManager: TdxBarManager);
procedure RestoreBarManagerStream(BarManager: TdxBarManager);

ну кроме того, что const запрещает изменять свойства объекта.


Проверил: добавил строку
BarManager.StretchGlyphs := True;

и никаких ошибок компилятор не выдал.

И если const запрещает изменение объекта, то почему процедура
BarManager.LoadFromStream(stream);

выполняется тоже без проблем.


Тогда вопрос. Для каких типов объектов актуально использовать const при передаче параметров?
String не в счёт.
4 сен 18, 13:25    [21663904]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1633
X11,

потому что параметр BarManager (т.е. адрес памяти) не меняется, меняются его свойства
4 сен 18, 13:29    [21663917]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
DimaBr
Member

Откуда:
Сообщений: 10651
X11
ну кроме того, что const запрещает изменять свойства объекта.

Где такое сказано ?
4 сен 18, 13:29    [21663918]     Ответить | Цитировать Сообщить модератору
 Re: const параметры  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 10488
X11
ну кроме того, что const запрещает изменять свойства объекта.
Где ты такое прочитал?

const запрещает присваивать значение самому объекту

BarManager := nil;

X11
Тогда вопрос. Для каких типов объектов актуально использовать const при передаче параметров?
Для типов, размер которых превышает машинное слово, чтобы избежать ненужного копирования в памяти и для типов, с управляемым временем жизни, чтобы избежать передергивания счетчика ссылок.

Т.е. для Win64:
  • Интерфейсы
  • Строки
  • Записи
  • Массивы
  • Variant
  • Extended

    Для Win32: Win64 +
  • Int64
  • Double (TDateTime)

    Для мобильных платформ + объекты (ибо у них есть счетчик ссылок)
  • 4 сен 18, 13:36    [21663930]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    DimaBr
    Member

    Откуда:
    Сообщений: 10651


    К сообщению приложен файл. Размер - 42Kb
    4 сен 18, 13:38    [21663934]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    X11
    Member

    Откуда: Kharkiv, Ukraine
    Сообщений: 12230
    DimaBr
    X11
    ну кроме того, что const запрещает изменять свойства объекта.

    Где такое сказано ?


    потерял ссылку... лень искать
    4 сен 18, 13:41    [21663942]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    X11
    Member

    Откуда: Kharkiv, Ukraine
    Сообщений: 12230
    Aleksandr Sharahov
    X11,

    потому что параметр BarManager (т.е. адрес памяти) не меняется, меняются его свойства


    а разве когда передаёшь переменную string, то меняется адрес? или я не понял?
    4 сен 18, 13:42    [21663947]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    GunSmoker
    Member

    Откуда:
    Сообщений: 3068
    В Билдере это. В Билдере нельзя, в Delphi - можно.
    4 сен 18, 13:43    [21663949]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    X11
    Member

    Откуда: Kharkiv, Ukraine
    Сообщений: 12230
    _Vasilisk_
    X11
    ну кроме того, что const запрещает изменять свойства объекта.
    Где ты такое прочитал?


    я не прочитал, а сделал вывод самостоятельно
    4 сен 18, 13:43    [21663951]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    Котовасия
    Member

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

    наверное, ссылка на какого-нибудь выдумщика была.
    4 сен 18, 13:43    [21663954]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    Valery_B
    Member

    Откуда: Москва
    Сообщений: 1726
    X11,

    procedure RestoreBarManagerStream(const BarManager: TdxBarManager);
    procedure RestoreBarManagerStream(BarManager: TdxBarManager);
    


    В приведённом тобой примере, действительно нет разницы, т.к. BarManager - это класс.
    На ассемблере, это будет одно и тоже - как ссылка на адрес в памяти на экземпляр этого класса.
    Без const компилятор делает локальную копию переменной, которую передали в качестве параметра.

    Но в случае, если параметр имеет тип:
    1. string, массив или variant: их длинна может быть не ограниченна, и копирование будет затратным. С Const копирования не будет.
    2. Interface: каждый раз, когда его будут передавать в качестве параметра, его RefCount будет увеличиваться на 1, а при выходе из метода - уменьшаться на 1. В случае const этого происходить не будет.
    3. Во всех остальных случаях, особой разницы нет. Копирование 4-16 байт не сделает разницы.
    4 сен 18, 13:48    [21663970]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    X11
    Member

    Откуда: Kharkiv, Ukraine
    Сообщений: 12230
    _Vasilisk_
    const запрещает присваивать значение самому объекту

    BarManager := nil;
    


    аааа, я понял, свойства менять можно, но вот присваивать что-то самому объекту напрямую нельзя:
    ...
    var
      BarManager1: TdxBarManager;
    begin
      BarManager := BarManager1;// ошибка
    ...
    
    4 сен 18, 13:48    [21663972]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    X11
    Member

    Откуда: Kharkiv, Ukraine
    Сообщений: 12230
    Valery_B
    В приведённом тобой примере, действительно нет разницы, т.к. BarManager - это класс.
    На ассемблере, это будет одно и тоже - как ссылка на адрес в памяти на экземпляр этого класса.
    Без const компилятор делает локальную копию переменной, которую передали в качестве параметра.


    >>>Без const компилятор делает локальную копию переменной, которую передали в качестве параметра.
    Вот опять мне не понятно. Получается, будет создан ещё один экземпляр BarManager если не подставить const?
    4 сен 18, 13:52    [21663977]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    Valery_B
    Member

    Откуда: Москва
    Сообщений: 1726
    X11
    >>>Без const компилятор делает локальную копию переменной, которую передали в качестве параметра.
    Вот опять мне не понятно. Получается, будет создан ещё один экземпляр BarManager если не подставить const?


    Нет. Будет создана ещё одна ссылка на экземпляр этого класса.
    4 сен 18, 13:53    [21663980]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    Котовасия
    Member

    Откуда:
    Сообщений: 269
    X11
    Valery_B
    В приведённом тобой примере, действительно нет разницы, т.к. BarManager - это класс.
    На ассемблере, это будет одно и тоже - как ссылка на адрес в памяти на экземпляр этого класса.
    Без const компилятор делает локальную копию переменной, которую передали в качестве параметра.


    >>>Без const компилятор делает локальную копию переменной, которую передали в качестве параметра.
    Вот опять мне не понятно. Получается, будет создан ещё один экземпляр BarManager если не подставить const?

    Переменной является ССЫЛКА на экземпляр.
    4 сен 18, 13:57    [21663989]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    Valery_B
    Member

    Откуда: Москва
    Сообщений: 1726
    X11,

    var
     BarManager: TdxBarManager
     BarManager1: TdxBarManager
     BarManager2: TdxBarManager
    begin
      BarManager:=TdxBarManager.Create; //Создать экземпляр класса, и присвоить его адрес в BarManager
      BarManager1:=BarManager;  
      BarManager2:=BarManager; //Теперь все переменные ссылаются на один и тот же экземпляр класса.
      BarManger2.Free; //Уничтожит экземпляр класса и сделает все ссылки не него неверными.
    end;
    
    4 сен 18, 13:58    [21663993]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    X11
    Member

    Откуда: Kharkiv, Ukraine
    Сообщений: 12230
    Valery_B
    Нет. Будет создана ещё одна ссылка на экземпляр этого класса.

    Котовасия
    Переменной является ССЫЛКА на экземпляр.


    теперь доходит
    4 сен 18, 14:00    [21663999]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    Aleksandr Sharahov
    Member

    Откуда: Москва
    Сообщений: 1633
    X11
    Aleksandr Sharahov
    X11,

    потому что параметр BarManager (т.е. адрес памяти) не меняется, меняются его свойства


    а разве когда передаёшь переменную string, то меняется адрес? или я не понял?


    const запрещает менять переданное, а объект передается как адрес.
    Когда изменяешь свойства объекта, его положение в памяти не меняется.
    Изменить объект = присвоить значение самому объекту, и его положение в памяти в общем случае может измениться.

    Со строками работает магия компилятора.
    Да, когда изменяешь символы строки, ее положение в памяти в общем случае может измениться. Но главное дело в магии.
    4 сен 18, 14:00    [21664001]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    Василий 2
    Member

    Откуда:
    Сообщений: 189
    В основном заповедь такая:
    1) на простые типы (булевы, символы, числа, даже вещественные, указатели) const ничего не дает, т.к. все равно в подпрограмму передается копия
    1.1) если указатель - это объект, то в режиме ARC (auto ref count, для мобильных платформ) см. правило для интерфейса
    2) на все остальные (записи, массивы, строки, интерфейсы) - не помешает, и даже даст выигрыш производительности. Плюс защитит от класса ошибок типа procedure(s: string) begin s:='foo'; end
    3) если параметр исключительно выходной, то лучше объявлять его out, а не var. var для тех, у кого читается значение на входе и меняется на выходе
    4 сен 18, 14:44    [21664096]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    X11
    Member

    Откуда: Kharkiv, Ukraine
    Сообщений: 12230
    DimaBr, а слона-то я и не заметил спасибо
    4 сен 18, 15:04    [21664125]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    white_nigger
    Member

    Откуда: Тула
    Сообщений: 1882
    Что это было?
    5 сен 18, 19:33    [21666196]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    Котовасия
    Member

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

    подготовка к пятнице.
    5 сен 18, 20:19    [21666235]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    X11
    Member

    Откуда: Kharkiv, Ukraine
    Сообщений: 12230
    white_nigger, ты про что именно?
    6 сен 18, 12:40    [21666798]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    white_nigger
    Member

    Откуда: Тула
    Сообщений: 1882
    X11
    white_nigger, ты про что именно?
    Про первые главы "Delphi для чайников". Вроде не пятница
    6 сен 18, 14:42    [21667025]     Ответить | Цитировать Сообщить модератору
     Re: const параметры  [new]
    X11
    Member

    Откуда: Kharkiv, Ukraine
    Сообщений: 12230
    white_nigger
    Про первые главы "Delphi для чайников"


    ой, когда это было... лет-лет и памяти нет
    6 сен 18, 14:50    [21667042]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: 1 2 3      [все]
    Все форумы / Delphi Ответить