这些声明之间的区别

时间:2015-02-26 09:09:48

标签: delphi parameters delphi-7

我从本周初开始学习Delphi,目前正在阅读Delphi 7 - Developer's Guide。在本书(第5-37章)中,作者声明了如下函数:

function FromEuro(const AValue: Double, Factor; FRound: TRoundToRange): Double;

如果我必须写这个函数,我会把它写成如下:

function FromEuro(const AValue, Factor: Double; FRound: TRoundToRange): Double;

我的问题是:这些声明之间有什么区别吗?

1 个答案:

答案 0 :(得分:3)

我认为您要问的是这两者之间的区别是什么:

function FromEuro(const AValue: Double; Factor: Double): Double; 
function FromEuro(const AValue, Factor: Double): Double;         

第二种变体是收缩,扩展为:

function FromEuro(const AValue: Double; const Factor: Double): Double;

这与

不同
function FromEuro(const AValue: Double; Factor: Double): Double; 

通过第二个参数const

请注意,我删除了最后一个参数,因为它与问题无关。

documentation说:

  

参数列表是由分号分隔并括在括号中的参数声明序列。每个声明都是以逗号分隔的参数名称系列,大多数情况下是冒号和类型标识符,在某些情况下是=符号和默认值。

文档未提及的是逗号分隔的一系列参数名称中的每个参数具有相同的类型。我想这是显而易见的,它确实遵循变量声明设置的示例。变量documentation表示:

  

变量声明的基本语法是:

var identifierList:type;
     

其中identifierList是逗号分隔的有效标识符列表   和type是任何有效的类型。例如:

var I: Integer;
     

声明一个Integer类型的变量I,而:

var X, Y: Real;
     

声明两个变量--X和Y - 类型为Real。

另一方面,也许你已经知道了所有这一切,而我们所拥有的只是书中的拼写错误!确实情况确实如此,因为可以在这里找到完全相同的拼写错误:http://docwiki.embarcadero.com/RADStudio/en/Using_a_Class_to_Manage_Conversions