Ken*_*ran 11 delphi dynamic-arrays open-array-parameters
我在看Delphi:Char和TCharArray数组"不兼容的类型"并开始尝试.我发现的很有趣.
procedure Clear(AArray: array of Integer);
var
I: Integer;
begin
for I := Low(AArray) to High(AArray) do
AArray[I] := 0;
end;
var
MyArray: array of Integer;
begin
Clear(MyArray);
end.
Run Code Online (Sandbox Code Playgroud)
这个简单的小例子展示了如何使用Open Array参数将动态数组传递给过程.它编译和运行完全符合预期.
procedure Clear(AArray: array of Char);
var
I: Integer;
begin
for I := Low(AArray) to High(AArray) do
AArray[I] := #0;
end;
var
MyArray: array of Char;
begin
Clear(MyArray);
end.
Run Code Online (Sandbox Code Playgroud)
这是几乎完全相同的代码唯一的区别是它使用的是数组Char而不是Integer.它不编译.相反,编译器吐出:
E2010 Incompatible types: 'Array' and 'Dynamic array'
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
在搜索了一段时间后,我发现了这个 QC报告.我正在运行Delphi 2009,它仍然在发生.
| 归档时间: |
|
| 查看次数: |
2363 次 |
| 最近记录: |