我几乎在所有的项目中都使用过这种场景,当我进行某种数据转换时,当谈到布尔值时,我觉得在简化它时会有点失落。下面这条语句伸出像突兀都在我的代码:是否有更简单的方法来进行布尔转换?
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?'True':'False' – vgoff
奇怪的是,我看到StackOverflow上与Delphi有关的确切的前一个问题也在问如何简化布尔比较。完全不同的问题与不同的答案,但他们两个背靠背... –