ada
Kenmerk Afbeelding
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 .
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
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
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
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