delphi - 避免 "variable might not have been initialized"

标签 delphi refactoring compiler-warnings

我最近遇到了一个看起来像这样的例程:

procedure TMyForm.DoSomething(list: TList<TMyObject>; const flag: boolean);
var
  local: integer;
begin
  if flag then
    //do something
  else local := ExpensiveFunctionCallThatCalculatesSomething;

  //do something else
  for i := 0 to list.Count do
    if flag then
      //do something
    else if list[i].IntValue > local then //WARNING HERE
        //do something else
end;

这给出了 Variable 'local' might not have been initialized即使您可以通过阅读代码知道除非初始化它的代码分支已经运行,否则您不会点击该行。

现在,我可以通过添加无用的 local := 0; 来摆脱这个警告。在程序的顶部,但我想知道是否有更好的方法来构建它以避免这个问题。大家有什么想法吗?

最佳答案

我会将其分成两个 for 循环——一个用于标志为 true 时,另一个用于标志为 false 时。作为一个额外的好处,您不必在每次迭代时都执行 if 语句。

关于delphi - 避免 "variable might not have been initialized",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2717383/

相关文章:

delphi - Redmon 和使用 Delphi 捕获标准输入

delphi - 无效的指针操作

delphi - FireDac 按需轮询记录并在 StringGrid 中显示它们

javascript - 获取所有以某个字符串开头的JS变量

git - 当有正在进行的功能分支时重构 master 的最佳方法是什么?

java - 如何为方法的所有错误或空参数设置默认值?

delphi - 在您的 delphi 应用程序中托管 WSH(VBScript、JavaScript)?

compiler-warnings - 一般来说,我应该将编译器设置为将警告视为错误吗?

c++ - 新的 C++ 警告会提高可靠性吗?

swift - 属性 getter 和 setter