Size: a a a

2020 December 23

SB

Sergey Bodrov in Delphi & Lazarus
Правда, есть нюансы с RefCount...
источник

K

Kass in Delphi & Lazarus
а точнее?
источник

SB

Sergey Bodrov in Delphi & Lazarus
Kass
а точнее?
Долго обьяснять, а готовой ссылки под рукой нету. Короче, используй const и не парься. =)
источник

K

Kass in Delphi & Lazarus
для простых типов юзаю, для объектов нет
источник

AS

Alexey Shumkin in Delphi & Lazarus
эмба прислала письмо
а там:

String to AnsiString convertor tool
With the introduction of Unicode support in Delphi 2009 the code for generic definitions of String, Char and PChar has changed. If you don’t need Unicode, this tool might be the way to go.
http://www.innovasolutions.com.au/delphistuf/ADUGStringToAnsiStringConv.htm

Unicode analysis tool

This utility will help you collect useful statistics about how easy or hard it would be to migrate your older applications to Unicode. Great for working out the scope of what you need to do.
https://cc.embarcadero.com/item/27398
источник

AK

Alexey Kulakov in Delphi & Lazarus
для новеньких сойдёт
источник

AS

Alexey Shumkin in Delphi & Lazarus
Alexey Kulakov
для новеньких сойдёт
скорее, для стареньких )))))
источник

VA

Viktor Akselrod in Delphi & Lazarus
Alexey Shumkin
эмба прислала письмо
а там:

String to AnsiString convertor tool
With the introduction of Unicode support in Delphi 2009 the code for generic definitions of String, Char and PChar has changed. If you don’t need Unicode, this tool might be the way to go.
http://www.innovasolutions.com.au/delphistuf/ADUGStringToAnsiStringConv.htm

Unicode analysis tool

This utility will help you collect useful statistics about how easy or hard it would be to migrate your older applications to Unicode. Great for working out the scope of what you need to do.
https://cc.embarcadero.com/item/27398
ничесе у них задержка. 11 лет письмо шло 🙂
источник

AK

Alexey Kulakov in Delphi & Lazarus
ну, я ради интереса посмотрел статью про миграцию с 32 бит на 64. в целом, давно известные вещи
источник

a

alexey t in Delphi & Lazarus
Sergey Bodrov
Но декоратор const работает логично, он и ссылку защищает, и данные.
если в метод передали массив элеменов и в методе изменили содержимое этого массива то const не поможет. потроха массива все равно по ссылке ж
источник

a

alexey t in Delphi & Lazarus
модификаторы const/var/out могут повлиять только на размеры массива. const не даст размер менять (не скомпилится), out - почистит массив на входе в метод. как то так
источник

a

alexey t in Delphi & Lazarus
Viktor Akselrod
ничесе у них задержка. 11 лет письмо шло 🙂
щас конец года, надо по максимуму народ на платную поддержку с заагитировать.
источник

SB

Sergey Bodrov in Delphi & Lazarus
alexey t
модификаторы const/var/out могут повлиять только на размеры массива. const не даст размер менять (не скомпилится), out - почистит массив на входе в метод. как то так
Насколько помню, значения элементов массива не дает менять. А вот производные этих значений (поля записей, значения по ссылкам) это слишком глубоко для компилятора. Конечно, при желании можно что угодно поменять через взятие указателя и приведение к любому типу.
источник

a

alexey t in Delphi & Lazarus
Sergey Bodrov
Насколько помню, значения элементов массива не дает менять. А вот производные этих значений (поля записей, значения по ссылкам) это слишком глубоко для компилятора. Конечно, при желании можно что угодно поменять через взятие указателя и приведение к любому типу.
даёт даёт.
источник

K

Kass in Delphi & Lazarus
Sergey Bodrov
Насколько помню, значения элементов массива не дает менять. А вот производные этих значений (поля записей, значения по ссылкам) это слишком глубоко для компилятора. Конечно, при желании можно что угодно поменять через взятие указателя и приведение к любому типу.
почему не должен давать изменить значение элемента массива если сам массив отдается по ссылке?
источник

AK

Alexey Kulakov in Delphi & Lazarus
имхо, проще всегда  исходить из того, что если массив передаётся по ссылке, то любые изменения в функции будут сказываться и на содержимом оригинального массива. И не будет никакой головной боли тогда
источник

DB

Dmitry Belkevich in Delphi & Lazarus
Viktor Akselrod
это динамический массив. он работает по ссылке, с счетчиком.
ес-но внутри функции оказывается тот же самый массив, только RefCount + 1
посмотрел, так и есть. ни один из модификаторов const, var либо вообще его отсутствие не меняет поведение: передается ссылка. доступная на запись. размер только что нельзя с const поменять
источник

a

alexey t in Delphi & Lazarus
Dmitry Belkevich
посмотрел, так и есть. ни один из модификаторов const, var либо вообще его отсутствие не меняет поведение: передается ссылка. доступная на запись. размер только что нельзя с const поменять
а еще out зачистит массив при входе в метод.
источник

AK

Alexey Kulakov in Delphi & Lazarus
кстати, не знал, что он зачищает... мне казалось, это больше на компилятор влияет чем на рантайм
источник

K

Kass in Delphi & Lazarus
alexey t
а еще out зачистит массив при входе в метод.
а для объекта он как себя поведет?
источник