Помощь новичкам

В паскале у строк Copy-On-Write семантика. Исключение: передача символа строки по ссылке. Там ничего не копируется.

Открываем в Паскале Справку. Все типы в PascalABC.NET подразделяются на две большие группы: размерные и ссылочные. К размерным относятся все простые типы, указатели, записи, статические массивы, множества и строки. К ссылочным типам относятся классы, динамические массивы, файлы и процедурный тип

begin
  Writeln(typeof(string).IsClass); // True
end.

Строки имеют ссылочный тип. В C# тоже так. Поэтому написанное в справке утверждение противоречит действительности, которая продемонстрирована программой.

Я уже говорил, что от этого аргумента меня лишь неприлично “пробивает на ржачку”. Строки - они так, как захотели сделать разработчики. А там не все так уж однозначно. Есть еще строки с фиксированной длиной. Официальный источник информации - Справка. А вовсе не ссылки на другой язык.

Упоминание про C# здесь не было аргументом. Не вижу ничего смешного в том, чтобы упомянать про другие языки программирования. Впрочем, это Ваше личное дело как к этому относится.

Я привёл пример кода, показывающий, что string - ссылочный тип.

Вы лишь показали пример, в котором string ведет себя, как ссылочный тип. Не более того. Я подожду, может быть разработчики скажут, правильно ли у них написано в Справке, или нет.

Если доверять Вашей “проверке” получается что Справка вообще почти везде врёт, говоря о размерных типах.

type
  t0 = string;
  t1 = set of char;
  t2 = record
    x: integer;
    y: string;
  end;
  t3 = array of integer;
  t4 = array[1..5] of real;
  t5 = ^integer;
  t6 = pointer;

begin
  typeof(t0).IsClass.Println; // True - строка
  typeof(t1).IsClass.Println; // True - множество
  typeof(t2).IsClass.Println; // False - запись
  typeof(t3).IsClass.Println; // True - динамический массив
  typeof(t4).IsClass.Println; // True - статический массив
  typeof(t5).IsClass.Println; // True - типизированный указатель
  typeof(t6).IsClass.Println; // True - бестиповый указатель
end.

Текст из Справки еще раз:

К размерным относятся все простые типы, указатели, записи, статические массивы, множества и строки. К ссылочным типам относятся классы, динамические массивы, файлы и процедурный тип.

Поддерживаю Ваше предложение.

Не думаю, что уместен сарказм по поводу «проверки».

А это Ваше право. Я не обязан доверять тому что пишет эта функция, мало ли как она реализована. Если вдруг программа выдаст, что 2+2=5, это не поставит всю математику “на уши”.

В панель управления - Языки и регион. станд. язык стоит русский. В самом АВС тоже русский. Я пробовал так: скопировал всю папку из другого компьютера и вставил в этом компьютере, но всеравно английский коментарии.

Да врёт справка, я всё это декомпилировал - статические массивы, множества и строки (в том числе и короткие) - это классы. Единственное - IsClass считает указатели классом тоже, просто потому что они хранят ссылку. Но указатель это и не запись, однозначно))) Да и при наведении мышки показывает что это класс.

2 лайка

Так, подождите, теперь это комментарий? Я совсем запутался, приведите скрины.

@RAlex, не нравятся аргументы - игнорируйте. Грубить не обязательно.

1 лайк

@Gleb, Вы где грубость в очередной раз увидели? Я скоро буду вынужден к @Admin обращаться по поводу Ваших публичных наездов на пустом месте.

Тогда у Вас есть повод создать issure ))))

Нет, комментарий не в тексте программы, а в инспектор объектов (где отражены свойство). Например, в форме добавлено TextBox, и мы стоим в свойство ReadOnly, а внизу инспектор объектов комментарий отражается на английском: Controls whether the text …

Предоставьте скрины, всё равно.

Справку надо целиком переделывать, создавать issue про неё бесполезно. Это лишь оттягивает момент когда кому то надоест такая справка и этот кто то сделает нормальную.

Справка врет. Строки ссылочные.

1 лайк

Это - явно не уважительное обращение:

@ibond, а как насчет указателей, статических массивов и множеств? Тоже справка врет? Тогда надо бы как-то переделать… Написать, к примеру, что размерные - только простые базовые типы и записи.

Но Вы же понимаете, что Справка - единственный официальный документ по языку! И если она настолько “ненормальная”, как Вы утверждаете, как таким языком пользоваться людям?