我如何'零'一个数组在 Delphi 中?

brtdzjyr  于 2023-03-29  发布在  其他
关注(0)|答案(3)|浏览(100)

一个包含6个布尔值的数组:

stages: Array [0..5] of Boolean;

我想在使用它之前重置它,但根据 Delphi Rio编译器,这不是一个有效的操作:

stages := [False, False, False, False, False, False];

我该怎么表达呢?

ijxebb2r

ijxebb2r1#

如果显式声明数组的类型,则可以使用finally documentedDefault内部函数。

type
  TMyBoolArray = array[0..5] of Boolean;
var
  stages: TMyBoolArray;
begin
  stages := Default(TMyBoolArray);
mnemlml8

mnemlml82#

FillChar(Stages,Sizeof(Stages),False);
mzmfm0qo

mzmfm0qo3#

更简单和安全的容易理解(* 由于Andreas在评论中的好论点,稍后编辑 *)对您的问题的回答是这样的:
申报区:

const TopStage = 5;
  var
    stages: Array [0..TopStage] of Boolean;

然后,你可以像这样在一个循环中设置每个元素:

for var I := 0 to TopStage do 
  stages[I] := False;

如果你有一个动态数组(stages: Array of Boolean)或(stages: TArray<Boolean>),那么你可以做你尝试过的事情:

stages := [False, False, False, False, False, False];

相关问题