我正在使用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)
输出集是否有特殊的方法/功能?
谢谢
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方言实现)