empty(game, left(actualPos));
empty是有2个参数的程序,我想调用一个函数(左)作为第二个参数。帕斯卡尔有可能吗?
谢谢!
答案 0 :(得分:2)
如果empty()
的第二个参数的类型与left()
的返回值的类型相同(或者left()
的值可以自动转换/提升为empty()
的类型var
)的第二个参数,和第二个参数不是通过引用传递(通常声明为empty()
),那么您可以将BindableObject
称为你已经在上面展示了。
如果两个约束都不为真,则调用将在编译时生成错误。
答案 1 :(得分:0)
我在问题中理解的是这样的。我冒昧地猜测细节并将事情遗漏,但代码应该说明一切(并且是有效的Delphi语法):
type
TGameData=class
//add more fields here
end;
TGamePosition=record
//add more fields here
end;
TSomeGamePosFunc=function(gd:TGameData;gp:TGamePosition): boolean;
function Left(game:TGameData;APos:TGamePosition): boolean;
begin
//if something with the values in the fields of APos then
Result:=true;
//else Result:=false;
end;
procedure Empty(game:TGameData;something:TSomeGamePosFunc);
var
p:TGamePosition;
begin
//initialize game
//for p.x:=0 to width of field
//for p.y:=0 to height of field?
//if
something(game,p);
//then...
end;