Ich bin etwas verwirrt, einen Abschnitt von ISO Pascal zu sehen.ISO Pascal Record-Varianten ohne Feldname
Die Grammatik ermöglicht es Ihnen, dies zu tun:
type RPoint = Record
Case Boolean of
False : (X,Y,Z : Real);
True : (R,theta,phi : Real);
end;
es zu konstruieren, was Sie tun:
var p: RPoint;
begin
p.x := 1;
end.
Es gibt einen Teil verstehe ich nicht: Was ist der Zweck des Case Boolean
Teil? Ich verstehe, dass Sie case MyVal: Boolean
tun können; dann wird MyVal
der Feldwähler. Was ist jedoch der Zweck, wenn es keine Feldauswahl gibt, nur einen Typ?
Darüber hinaus ist die Norm sagt:
Bei jeder Variante-Teil ist eine Art der Selektor-Typ durch die varianten Teil besessen bezeichnet zugeordnet werden. Enthält der Varianten-Selektor des Varianten-Teils ein Tag-Feld oder enthält die Fall-Konstanten- Liste jeder Variante des Varianten-Teils nur eine Fall-Konstante, so ist der Selektor-Typ mit zu bezeichnen der Tag-Typ und jede Variante des Variant-Teils müssen mit den Werten verknüpft werden, die durch den Selektor-Typ spezifiziert sind, der durch die Fallkonstanten der Fall-Konstanten-Liste der Variante angegeben ist. Andernfalls muss der Selektyp des Variantenteils ein neuer Ordinaltyp sein, der so aufgebaut ist, dass er genau einen Wert für jede Variante des Variantenteils besitzt, und , wobei jede dieser Varianten zugeordnet werden muss ein eindeutiger Wert dieses Typs.
Ich verstehe nicht ganz, was die selector-type
ist und warum es wäre ein neues ordinal-type
sein. Wäre der selector-type
nicht einfach der Typ wie in case Boolean of
? Und was hat jeder case-constant-list
mit nur einem case-constant
damit zu tun?
In der Vergangenheit war die comp.lang.pascal.ansi-iso-Newsgroup die beste Quelle für ISO Details und trotz dass es Aktion seit Jahren nicht mehr gesehen hat, könnte es noch lurkers sein. Ansonsten versuchen Sie die Gnu Pascal (GPC) -Dokumentation zu diesem Thema zu durchsuchen. –