天津网站建设制作排名,做马来西亚生意的网站,河南华盛建设集团网站,黄石市下陆区建设管理局网站4.2.3 常量参数
作为引用参数的替代#xff0c;您可以使用const参数。由于您无法在例程内为const参数赋予新值#xff0c;因此编译器可以优化参数传递。编译器可以选择与引用参数相似的方法#xff08;或者在C术语中是const引用#xff09;#xff0c;但行为类似于值参…4.2.3 常量参数
作为引用参数的替代您可以使用const参数。由于您无法在例程内为const参数赋予新值因此编译器可以优化参数传递。编译器可以选择与引用参数相似的方法或者在C术语中是const引用但行为类似于值参数因为无法通过函数修改原始值。
实际上如果尝试编译以下代码在ParamsTest项目中可用但被注释掉系统将报出错误
function DoubleIt(const Value: Integer): Integer;
beginValue : Value * 2; // 编译错误Result : Value;
end; 您将看到的错误消息可能不太直观因为它说
[dcc32 Error] E2064 Left side cannot be assigned to 对于字符串来说常量参数非常常见因为在这种情况下编译器可以禁用引用计数机制以获得轻微的优化。这是使用常量参数的最常见原因这种特性对序数和标量类型来说意义有限。常量参数也不常用于对象因为在Object Pascal中当将对象作为常量参数传递时保持不变的是对象引用而不是对象本身。换句话说编译器不允许您将新对象赋值给常量参数但它允许调用对象的任何可能更改其数据的方法。 注解 传递常量参数的另一种鲜为人知的方法是为其添加ref属性如“const [ref]”。这个属性强制编译器通过引用传递常量参数而默认情况下编译器将根据参数的大小选择通过值传递还是通过引用传递的方式结果因目标CPU和平台而异。