我幾乎在所有的項目中都使用過這種場景,當我進行某種數據轉換時,當談到布爾值時,我覺得在簡化它時會有點失落。下面這條語句伸出像突兀都在我的代碼:是否有更簡單的方法來進行布爾轉換?
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有關的確切的前一個問題也在問如何簡化布爾比較。完全不同的問題與不同的答案,但他們兩個背靠背... –