传递参数以在过程中写入
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.
如何将参数从我的过程传递到内部调用的 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.