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

Код: 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
17.08.2021, 13:38
    #40091204
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Магия Boolean.ToString
antoxЭто глюк или фишка? :)

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

PS: https://blogs.embarcadero.com/new-tip-tbooleanhelper-tostring-and-tuseboolstrs-enumeration/
...
Рейтинг: 0 / 0
17.08.2021, 13:40
    #40091205
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Магия Boolean.ToString
на кой хер эти модные заморочки?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
17.08.2021, 13:55
    #40091214
antox
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Магия Boolean.ToString
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
17.08.2021, 13:58
    #40091216
antox
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Магия Boolean.ToString
Мимопроходящий

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


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

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

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

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

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

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

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

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

PS: https://blogs.embarcadero.com/new-tip-tbooleanhelper-tostring-and-tuseboolstrs-enumeration/
*facepalm* отличный способ взвинтить показатель WTF-per-minute на порядок
...
Рейтинг: 0 / 0
18.08.2021, 15:03
    #40091517
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Магия Boolean.ToString
Им надо было сделать вот такие перегрузки:
Код: 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
18.08.2021, 15:39
    #40091534
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Магия Boolean.ToString
X-Cite
А еще лучше, убрать вывод -1 и 0 и сделать всегда True или False.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Магия Boolean.ToString / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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