gpt4 book ai didi

delphi - 当没有外部上下文时,过程变量和匿名函数是否等效?

转载 作者:行者123 更新时间:2023-12-03 15:53:28 26 4
gpt4 key购买 nike

我知道,当在匿名过程中提到外部变量时,需要采取特殊措施来维护外部变量的生命周期。但是,当匿名过程不使用外部变量时,它会生成与旧的通用过程相同的汇编调用吗?换句话说,片段 1 中的匿名函数和片段 2 中的 NamedFunction 的内部结构是否相同

片段1

type
TSimpleFunction = reference to function(x: string): Integer;

begin
y1 := function(x: string): Integer
begin
Result := Length(x);
end;

y1('test');
end.

片段1

type
TWellKnownSimpleFunction = function(x: string): Integer;

function NamedFunction(x: string): Integer;
begin
Result := Length(x);
end;

var
y1: TWellKnownSimpleFunction;
begin
y1:=NamedFunction;

y1('test');
end.

最佳答案

没有。匿名方法在内部作为接口(interface)引用实现。阅读 Barry Kelly's article了解详情。

您还可以查看my article我在那里尝试模仿匿名界面方法。

匿名方法不是过程变量,即使它们不捕获变量。

关于delphi - 当没有外部上下文时,过程变量和匿名函数是否等效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3727495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com