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 .

Ada 2012 (TC-1)

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

Ada 2012 (TC-1)
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

Ada 2012 (TC-1)
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

Ada 2012 (TC-1)
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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow