SSp*_*oke 2 arrays delphi boolean function
我有
playerIds : Array[0..500] of string;
function isPlayerMob(check : string): boolean;
var
i : integer;
begin
for i := 0 to 500 do
begin
if ((playerIds[i] <> '') and (playerIds[i] = check)) then
begin
result := true;
end;
end;
result := false;
end;
Run Code Online (Sandbox Code Playgroud)
我收到警告
Hint: Value assigned to 'isPlayerMob' never used
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何解决这个问题吗?该错误是针对
结果:=真;
正如其他人告诉您的那样,您的循环分配给的值Result
将被丢弃,因为您在最终分配给 之前没有退出该函数Result
,因此循环分配什么并不重要。
您可以为结果分配一个初始值,然后根据需要重新分配它,或者您可以Exit
在分配所需的值后简单地分配:
function isPlayerMob(check : string): boolean;
var
i : integer;
begin
for i := 0 to 500 do
begin
if ((playerIds[i] <> '') and (playerIds[i] = check)) then
begin
Result := True;
Exit; // <-- add this
end;
end;
Result := False; // <-- only performed if the loop does not find a match
end;
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用的是最新的 Delphi 版本:
function isPlayerMob(check : string): boolean;
var
i : integer;
begin
for i := 0 to 500 do
begin
if ((playerIds[i] <> '') and (playerIds[i] = check)) then
Exit(True); // <-- sets Result and exits at the same time
end;
Result := False; // <-- only performed if the loop does not find a match
end;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5990 次 |
最近记录: |