<< Click to Display Table of Contents >> A Importância do const |
![]() ![]() ![]() |
Se você passar uma string para dentro de uma rotina e não tiver a intenção de altera-la, então declare-a como const.
Se você não usar const o compilador pré-supõe que você poderá vir a alterar a string e, portanto, estabelece uma variável string local para sustentar o string.
A contagem de referência é incrementada no inicio e será decrementada no final.
Para se assegurar que ela seja decrementada no final, o compilador adiciona o bloco oculto Try...finally.
Na rotina abaixo (contagem de vogais em uma string):
function CountWowels(const S: string): Integer;
var
I: Integer;
begin
Result := 0;
for I := 1 to Length(S) do
if Upcase(S[I]) in ['A', 'E', 'I', 'O', 'U'] then
Inc(Result);
end;
Se a const da palavra-chave for removida a velocidade da rotina será reduzida em em cerca de 12%, este é o custo do bloco oculto
Try...finally.