0
下面的代碼示例應評估一個字符串。避免if語句的完整檢查
function EvaluateString(const S: Ansistring): Ansistring;
var
i, L: Integer;
begin
L := Length(S);
i:=1;
if (L > 0) and (S[i] > ' ') and (S[L] > ' ') then
.....
end;
但如果L = 0,那麼(S[i] > ' ')
將創建訪問衝突。 我可以在保持if
條件的情況下避免此問題嗎?
您是否啓用了完整的布爾評估? –
大衛的意思是,如果完全布爾評估是* not * enabled(這是默認值),那麼您將不會得到訪問衝突,因爲如果'L = 0',測試'(L> 0)''將已經失敗,並使代碼跳過評估的其餘部分。 –