如何在Pascal中输出Set的内容?

Tin*_*iny 3 freepascal

我正在使用Pascal中的简单集,并且只想输出集合的内容.每次运行代码时,我都会收到以下错误消息:'project1.lpr(17,13)错误:无法读取或写入此类型的变量'.

这是我的代码:

  program Project1;

{$mode objfpc}{$H+}

uses
  sysutils;

type TFriends = (Anne,Bob,Claire,Derek,Edgar,Francy);
type TFriendGroup = Set of TFriends;

Var set1,set2,set3,set4:TFriendGroup;    x:integer;

begin
set1:=[Anne,Bob,Claire];
set2:=[Claire,Derek];
set3:=[Derek,Edgar,Francy];
writeln(set1);
readln;
end.
Run Code Online (Sandbox Code Playgroud)

输出集是否有特殊的方法/功能?

谢谢

Mar*_*ort 5

Free Pascal允许在没有明确的typinfo调用的情况下对枚举进行write/writeln().

所以

{$mode objfpc}  // or Delphi, For..in needs Object Pascal dialect iirc.
var Person :TFriends;

 for Person in Set1 do
    writeln(Person);
Run Code Online (Sandbox Code Playgroud)

工作良好.

使用WriteStr也可以将其写入字符串.(writestr函数,如write/writestr,但然后是一个字符串.最初为ISO/Mac方言实现)