当然,即使我能做到这一点......
var
testarray : array of string;
setlength(testarray, 5);
Run Code Online (Sandbox Code Playgroud)
但是如果我想变得聪明并且有一个程序我通过这样的referance传递数组我无法做到!
procedure DoStuffWithArray(var passedarray : array of string);
begin
setlength(passedarray, 5);
end;
Run Code Online (Sandbox Code Playgroud)
编译器在我的proc中的单行代码中说"不兼容的类型".
如果我在调用proc之前执行setlength,我可以在数组上执行其他内容,例如set set element values,但是我不能在proc中执行setlength,这就是我想要做的.
非常感谢任何帮助,谢谢大家.
Mas*_*ler 17
作为参数的数组类型需要具有名称.所以:
type TStringArray = array of string;
procedure DoStuffWithArray(var passedarray: TStringArray);
Run Code Online (Sandbox Code Playgroud)
然后它会工作.
但是如果你需要一个动态大小的字符串组,你可能会发现TStringList更容易使用.
| 归档时间: |
|
| 查看次数: |
2929 次 |
| 最近记录: |