具有无限参数的函数

时间:2017-05-03 15:56:58

标签: pascal

我不知道是否可以按照我的意愿这样做。

我在Pascal中有一个函数,它以一些独占格式在屏幕上打印文本。

    procedure printLine(line1:string;line2:string;line3:string;line4:string;line5:string);
begin
    writeln('**** ',line1,' ',line2,' ',line3,' ',line4,' ',line5);
end;

我想知道是否有一种方法可以让它看起来像writeln并用我需要的参数数量调用它。

1 个答案:

答案 0 :(得分:0)

我正在研究这个问题的答案。我不打算在我的程序中使用它,但我会发布我所做的。

procedure printLine(const Args: array of const);
var
    i:integer;
begin
write('**** '); 
for i:=0 to High(Args) do
        write(args[i],' ');
    writeln;
end;

这是使用Delphi的const数组的代码,以防有人需要它。 我没有对其进行测试。此解决方案是基于 LU RD 的评论而制作的。

关于 MartynA 的评论: 我根据字符串的dinamic队列快速定义了一个单元。我检查了它并实施了新程序 printLine 。 使用此队列执行该过程的是:

procedure printLine(Args:tQueue);
var
begin
    write('**** ');
    while (not(isEmptyQueue(Args))) do begin
        write(front(Args));
        dequeue(Args);
    writeln;
end;

我意识到我提出的问题非常简单,但我确实如此 当被问到这个时有点累。 谢谢大家。