Я использовал этот сценарий много раз почти во всех моих проектах, когда я делаю какое-то преобразование данных, когда дело доходит до логических значений, я немного теряюсь, когда дело доходит до его простого. Это утверждение ниже торчит как воспаленный большой палец во всем моем коде:Есть ли более простой способ сделать логические преобразования?
if BoolVal then
StrVal:= 'True'
else
StrVal:= 'False';
Я интересно, если есть более простой способ выполнить эту оценку? Возможно, какое-то использование заявления Case
, о котором я не знаю? Моя фактическая реализация сложнее, чем просто StrVal
, но она состоит из возврата двух разных значений в зависимости от того, является ли это True или False. Например, вот какой-то реальный код ...
if fsBold in Can.Font.Style then
ConvertTo(AddSomeOtherText + 'True')
else
ConvertTo(AddSomeOtherText + 'False');
Это просто подчеркнуть, насколько я просто надеюсь. Я интересно, если я могу сделать что-то вдоль линий этого:
ConvertTo(AddSomeOtherText + BoolToStrCase((fsBold in Can.Font.Style), 'True', 'False'));
Я уверен, что это не настоящая команда, но я ищу для этого типа простоты в одной строке.
Хорошо, это не был действительно «реальный» код, но как пример того, что я ненавижу дублирующий код для каждой булевой оценки. –
Поддерживает ли ваш язык тернарный оператор? StrVal =: BoolVal?«Истина»: «False» – vgoff
Странно, я вижу, что точный предыдущий вопрос о StackOverflow, связанный с Delphi, также спрашивает, как сделать сравнение Boolean простым. Разный вопрос полностью с разными ответами, но оба из них спина к спине ... –