我注意到不同的代码以与我不同的方式声明参数,我想知道这样做是否有特定的原因,或者是否是一种偏好。
假设我写了这个函数(只是一个不同参数的例子)
function DoSomething(AHeight, AWidth: Integer; R: TRect): Boolean
begin
//
end;
如果这样声明,这有什么不同:
function DoSomething(var AHeight, AWidth: Integer; const R: TRect): Boolean
begin
//
end;
我知道一个变量是可读/写的,而一个常量是只读的,但是以这种方式声明参数有什么不同呢?
对我来说,这两个函数都在寻找调用代码来提供高度、宽度和矩形,但是第二个函数使它看起来像是在声明新变量。
我有一种感觉,这将是一个直截了当的答案,我觉得问起来很傻,但我必须知道有什么区别,如果有的话?