【发布时间】:2021-01-08 14:02:34
【问题描述】:
我想知道下面的通用代码有什么问题(用 Delphi 10.4.1 编写)。 此外,还有其他方法可以实现相同的目标吗?我的意思是在数组中搜索 (我知道我应该使用集合)。提前致谢!
问候
type
TDelphiExtention = class
public
class function inside<T>(const value : T; const arr : array of T) : boolean;
end;
class function TDelphiExtention.inside<T>(const value : T; const arr : array of T) : boolean;
var
i : integer;
begin
result := true;
for i := Low(arr) to High(arr) do begin
if (arr[i] = value) then begin // E2015 Operator not applicable to this operand type !!!
exit;
end;
end;
result := false; // Not found
end;
// This one compiles like a charm... But is not generic :(
function inside(const value : integer; const arr : array of integer) : boolean;
var
i : integer;
begin
result := true;
for i := Low(arr) to High(arr) do begin
if (arr[i] = value) then begin
exit;
end;
end;
result := false; // Not found
end;
【问题讨论】:
-
当说它不编译时很有帮助,你包括你得到的exact编译器错误消息。它使我们更容易找到问题所在的区域。请edit您的帖子这样做。谢谢。