powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Магия Boolean.ToString
11 сообщений из 11, страница 1 из 1
Магия Boolean.ToString
    #40091198
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-нибудь сталкивался? Это глюк или фишка? :) Если второе, то для чего?

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
var
  a, b: boolean;
  s: string;
begin
  a :=true;
  s := a.ToString(TUseBoolStrs.True)); //Вернет "True"
  s := a.ToString(True)); //Вернет "-1"

  b :=false;
  s := b.ToString(TUseBoolStrs.True)); //Вернет "False"
  s := b.ToString(False)); //Вернет "-1", что вообще странно

end;



если не указывать параметр UseBoolStrs, то нормально ожидаемо

Код: pascal
1.
2.
 True.ToString(); //Вернет -1
 False.ToString(); //Вернет 0
...
Рейтинг: 0 / 0
Магия Boolean.ToString
    #40091204
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antoxЭто глюк или фишка? :)

Это ожидаемый результат с первого взгляда на список оверлоадов в TBooleanHelper.

PS: https://blogs.embarcadero.com/new-tip-tbooleanhelper-tostring-and-tuseboolstrs-enumeration/
...
Рейтинг: 0 / 0
Магия Boolean.ToString
    #40091205
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на кой хер эти модные заморочки?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Магия Boolean.ToString
    #40091214
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
antoxЭто глюк или фишка? :)

Это ожидаемый результат с первого взгляда на список оверлоадов в TBooleanHelper.

PS: https://blogs.embarcadero.com/new-tip-tbooleanhelper-tostring-and-tuseboolstrs-enumeration/

The ToString method has also a second parameter, UseBoolStrs, to let the method return a string with the text False or True. However, if you call True.ToString(True) you still get -1. What’s up? As you can see in the definition above, there are both a regular instance method and a class method called ToString that can be called with one Boolean parameter. The compiler picks the one without default parameter as best match.


И действительно What’s fucking up :( Непонятно, зачем так делать
...
Рейтинг: 0 / 0
Магия Boolean.ToString
    #40091216
antox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий

на кой хер эти модные заморочки?


Удобно же... Поставил точку и ToString не надо искать BoolToStr(), хотя судя по докам и там может поджидать засада

авторfunction BoolToStr(B: Boolean; UseBoolStrs: Boolean = False): string;
...
Рейтинг: 0 / 0
Магия Boolean.ToString
    #40091219
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
antoxНепонятно, зачем так делать

Дизайнеры VCL чем дальше, тем хуже. Хотя она с самого начала была не ахти...

antoxПоставил точку и ToString не надо искать BoolToStr()

И что в результате? Строка, которую даже пользователю не показать. Назачем?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Магия Boolean.ToString
    #40091221
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Альтернативная одаренность автора хелпера.
...
Рейтинг: 0 / 0
Магия Boolean.ToString
    #40091222
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17.08.2021 13:58, antox пишет:
> Удобно же... Поставил точку и ToString не надо искать BoolToStr(),

всегда пользовали Ord()
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Магия Boolean.ToString
    #40091491
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov
antoxЭто глюк или фишка? :)

Это ожидаемый результат с первого взгляда на список оверлоадов в TBooleanHelper.

PS: https://blogs.embarcadero.com/new-tip-tbooleanhelper-tostring-and-tuseboolstrs-enumeration/
*facepalm* отличный способ взвинтить показатель WTF-per-minute на порядок
...
Рейтинг: 0 / 0
Магия Boolean.ToString
    #40091517
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Им надо было сделать вот такие перегрузки:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  {$SCOPEDENUMS ON}
  TUseBoolStrs = (AsString);
  {$SCOPEDENUMS OFF}

  TMyBooleanHelper = record helper for Boolean
    function ToString: string; overload; inline;
    function ToString(const aUseBoolStrs: TUseBoolStrs): string; overload; inline;
    class function ToString(const aValue: Boolean): string; overload; static; inline;
    class function ToString(const aValue: Boolean; const aUseBoolStrs: TUseBoolStrs): string; overload; static; inline;
  end;



А еще лучше, убрать вывод -1 и 0 и сделать всегда True или False.. Ведь смысл ToString именно в True/False
...
Рейтинг: 0 / 0
Магия Boolean.ToString
    #40091534
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Cite
А еще лучше, убрать вывод -1 и 0 и сделать всегда True или False.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Магия Boolean.ToString
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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