powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы [новые:2] / Поиск: Искать ответы на сообщение: #590769  
4 сообщений из 4, страница 1 из 1
Языки программирования семейства Pascal / Изучаю новую Delphi
    #590769
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
s62  31.10.2023, 08:00
[игнорируется]
Неуловимый Джо [игнорируется] 
то есть для словаря и кортежа он возвращает имя класса, а для остальных типов - значение, да? А кортеж и словарь - это единственные структурированные, "сложные" типы?
Там будет не имя, а печать содержимого.
И да, сложных только эти два (у меня). В книге-то еще есть классы, массивы, перечисления и тд.
...
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Изучаю новую Delphi
    #590822
s62
Скрыть профиль Поместить в игнор-лист
s62 
Участник
Неуловимый Джо  31.10.2023, 08:06
[игнорируется]
s62  31.10.2023, 08:00
[игнорируется]
Неуловимый Джо [игнорируется] 
то есть для словаря и кортежа он возвращает имя класса, а для остальных типов - значение, да? А кортеж и словарь - это единственные структурированные, "сложные" типы?
Там будет не имя, а печать содержимого.
И да, сложных только эти два (у меня). В книге-то еще есть классы, массивы, перечисления и тд.
То есть ты переписал эту функцию? Т.к. по-умолчанию она возвращает имя класса. https://docwiki.embarcadero.com/Libraries/Alexandria/en/System.TObject.ToString
Код: Delphi
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
procedure TForm1.Button1Click(Sender: TObject);
var O: TInterfacedObject;
begin
  O := TInterfacedObject.Create;
  try
    Caption := O.ToString;
  finally
    O.Free;
  end;
end;
ToString.png
...
Изменено: 31.10.2023, 09:32 - s62
Рейтинг: 0 / 0
Языки программирования семейства Pascal / Изучаю новую Delphi
    #590830
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
s62  31.10.2023, 09:29
[игнорируется]
То есть ты переписал эту функцию?
Да.
возвращает примерно такой результат "('sss', 10, 45, ...)"
Код: Delphi
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
function TTuple.ToString: String;
var
  i: Integer;

  function GetStr(AValue: Variant): string;
  begin
    Result := VariantToStr(AValue);
    if VarType(AValue) = varString then
      Result := QuotedStr(Result);
  end;

begin
  Result := '(';
  if FElements.Count > 0 then
  begin
    for i := 0 to FElements.Count-2 do
      Result := Result + GetStr(FElements[i]) + ', ';
    Result := Result + GetStr(FElements[FElements.Count-1]);
  end;
  Result := Result + ')';
end;
...
Рейтинг: 1 / 0
Нравится: s62
Языки программирования семейства Pascal / Изучаю новую Delphi
    #590852
Неуловимый Джо
Скрыть профиль Поместить в игнор-лист
Участник
[игнорирует гостей]
s62 [игнорируется] 

На всякий, может будет интересно, вот гитхаб автора с этим проектом (на Lazarus)
https://github.com/jdehaan2014/GearLanguage/tree/master/interpreter

Свой (на делфях) могу в личку кинуть.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы [новые:2] / Поиск: Искать ответы на сообщение: #590769  
Пользователи онлайн (32): Анонимы (16), Barkrowler, Green, Yandex Bot, Bing Bot, prostozevs 1 мин., Т-Миронов 1 мин., Redd 1 мин., zNomad 1 мин., паразит 2 мин., s62 2 мин., Google Bot 3 мин., Шоколадный01 4 мин., Sparrow 4 мин., IT-Клоп 4 мин., С чистого листа 8 мин., Брюквенные годы 9 мин.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]