ada
Attributbild
Suche…
Einführung
Die Untertypenattribute 'Image und 'Value nehmen jeweils einen Skalarwert und eine Zeichenfolge an und geben jeweils einen String und einen Skalarwert zurück. Das Ergebnis von 'Image kann in 'Value eingegeben werden, um den ursprünglichen Wert zu erhalten. Das Gegenteil trifft auch zu.
Das __Scalar_Object__'Image Attribut __Scalar_Object__'Image kann direkt an Objekten verwendet werden (seit Ada 2012-TC-1).
Syntax
- Funktion Scalar'Image (Argument: Scalar'Base) return String;
- Funktion Discrete'Image (Argument: Discrete'Base) return String;
- function Integer'Image (Argument: Integer'Base) return String;
- function Enumeration'Image (Argument: Enumeration'Base) return String;
- Funktion Real'Image (Argument: Real'Base) return String;
- Funktion Numeric'Image (Argument: Numeric'Base) return String;
- Funktion Scalar'Value (Argument: String) return Scalar'Base;
- Funktion Discrete'Value (Argument: String) return Discrete'Base;
- Funktion Integer'Value (Argument: String) return Integer'Base;
- Funktion Enumeration'Value (Argument: String) return Enumeration'Base;
- Funktion Real'Value (Argument: String) return Real'Base;
- Funktion Scalar_Object 'Image return String;
Bemerkungen
Beachten Sie, dass 'Image implementierungsdefinierte Ergebnisse haben kann (RM 3.5), dh wenn einige für das String Ergebnis benötigte Grafikzeichen nicht in Character definiert sind. 'Wide_Image Sie die größeren Repertoires von 'Wide_Image 'Wide_Wide_Image und 'Wide_Wide_Image .
Die Berechtigung zur Verwendung des Attributs __Scalar_Object__'Image direkt für ein Objekt wurde in Ada 2012-TC-1 (April 2016) hinzugefügt.
Drucken Sie den Float mithilfe des Image-Attributs aus
with Ada.Text_IO;
procedure Main is
type Some_Float digits 8 range 0.0 .. 10.0;
X : Some_Float := 2.71;
begin
Ada.Text_IO.Put_Line (X'Image);
end Main;
Ergebnis
2.71000E+00
Ganzzahl mit dem Image-Attribut drucken
with Ada.Text_IO;
procedure Main is
type Some_Integer is range -42 .. 42;
X : Some_Integer := 17;
begin
Ada.Text_IO.Put_Line (X'Image);
end Main;
Ergebnis
17
Drucken Sie die Aufzählung mit dem Image-Attribut aus
with Ada.Text_IO;
procedure Main is
type Fruit is (Banana, Orange, Pear);
X : Fruit := Orange;
begin
Ada.Text_IO.Put_Line (X'Image);
Ada.Text_IO.Put_Line (Pear'Image);
end Main;
Ergebnis
ORANGE
PEAR
Drucken Sie die Aufzählung mit dem Attribut Image aus
with Ada.Text_IO;
procedure Main is
type Fruit is (Banana, Orange, Pear);
X : Fruit := Orange;
begin
Ada.Text_IO.Put_Line (Fruit'Image (X));
end Main;
Ergebnis
ORANGE
Ganzzahl mit Attribut Image ausdrucken
with Ada.Text_IO;
procedure Main is
X : Integer := 17;
begin
Ada.Text_IO.Put_Line (Integer'Image (X));
end Main;
Ergebnis
17
Drucken Sie Float mit dem Attribut Image aus
with Ada.Text_IO;
procedure Main is
X : Float := 2.71;
begin
Ada.Text_IO.Put_Line (Float'Image (X));
end Main;
Ergebnis
2.71000E+00
Als Inverse
with Ada.Text_IO;
procedure Image_And_Value is
type Fruit is (Banana, Orange, Pear);
X : Fruit := Orange;
begin
Ada.Text_IO.Put_Line (Boolean'Image
(Fruit'Value (Fruit'Image (X)) = X
and
Fruit'Image (Fruit'Value ("ORANGE")) = "ORANGE"));
end Image_And_Value;
Ergebnis
TRUE