传递参数以在过程中写入

Passing arguments to write within a procedure

如何将参数从我的过程传递到内部调用的 write 调用?

有点类似:

procedure smth (args: alltypes);
begin
    write(args);
end;

例如:

procedure write( text : string );
begin
    write( text );
end;

但是如果您想覆盖您的功能。您必须阅读该主题 HERE。这将允许您使用更多类型的参数创建函数。

如果您想以 Write 方式将您的函数与任何 number/type 参数一起使用,例如 smth(3, 'aaa', 5.6) - 据我所知,这是不可能的。但是,您可以使用 array of ... 类型的参数来向过程传递任意数量的参数。

这是一个例子:

program wrt;

{$mode objfpc}{$H+}

uses
    sysutils, variants;

procedure test1(args: array of Variant);
var
    i: Integer;
begin
    for i := Low(args) to High(args) do
        Write(args[i]);
    Writeln;
end;

procedure test2(fmt: string; args: array of const);
begin
    Writeln(Format(fmt, args));
end;

begin
    test1([1, 'aaa', 3.5, False]);
    test2('%d %s %g, %s', [1, 'aaa', 3.5, BoolToStr(False, True)]);
end.