Zoeken…


Invoering

Subtypeattributen 'Image en 'Value nemen respectievelijk een scalaire waarde en een string en ze retourneren respectievelijk een string en een scalaire waarde. Het resultaat van 'Image kan worden ingevoerd in 'Value om de oorspronkelijke waarde te krijgen. Het omgekeerde is ook waar.

Het __Scalar_Object__'Image kan rechtstreeks op objecten worden gebruikt (sinds Ada 2012-TC-1).

Syntaxis

  • functie Scalar'Image (Argument: Scalar'Base) return String;
  • functie Discrete'Image (Argument: Discrete'Base) return String;
  • functie Integer'Image (Argument: Integer'Base) return String;
  • functie Enumeration'Image (Argument: Enumeration'Base) return String;
  • functie Real'Image (Argument: Real'Base) return String;
  • functie Numeric'Image (Argument: Numeric'Base) return String;
  • functie Scalar'Value (Argument: String) retourneert Scalar'Base;
  • functie Discrete'Value (Argument: String) retourneert Discrete'Base;
  • functie Integer'Value (Argument: String) retourneert Integer'Base;
  • functie Enumeration'Value (Argument: String) return Enumeration'Base;
  • functie Real'Value (Argument: String) retourneert Real'Base;
  • functie Scalar_Object 'Afbeelding retour String;

Opmerkingen

Merk op dat 'Image kan leiden tot door de implementatie gedefinieerde resultaten (RM 3.5), namelijk wanneer sommige grafische tekens die nodig zijn voor het String resultaat niet zijn gedefinieerd in Character . Overweeg de grotere repertoires van 'Wide_Image en 'Wide_Wide_Image .

Ada 2012 (TC-1)

De toestemming om het kenmerk __Scalar_Object__'Image rechtstreeks op een object te gebruiken, is toegevoegd in Ada 2012-TC-1 (april 2016).

Float afdrukken met behulp van het kenmerk Image

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;

Resultaat

2.71000E+00

Druk het gehele getal af met het kenmerk Afbeelding

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;

Resultaat

17

Druk de opsomming af met het kenmerk Image

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;

Resultaat

ORANGE
PEAR

Telling afdrukken met kenmerk Afbeelding

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;

Resultaat

ORANGE

Druk Integer af met het kenmerk Image

with Ada.Text_IO;

procedure Main is
   X : Integer := 17;
begin
   Ada.Text_IO.Put_Line (Integer'Image (X));
end Main;

Resultaat

17

Float afdrukken met kenmerk Image

with Ada.Text_IO;

procedure Main is
   X : Float := 2.71;
begin
   Ada.Text_IO.Put_Line (Float'Image (X));
end Main;

Resultaat

2.71000E+00

Zoals Inverses

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;

Resultaat

TRUE


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow