Sök…


Introduktion

Undertypattributen 'Image och 'Value tar respektive ett skalärt värde och en sträng och de returnerar respektive en sträng och ett skalarvärde. Resultatet av 'Image kan matas in till 'Value att få det ursprungliga värdet. Samtalet är också sant.

__Scalar_Object__'Image kan användas direkt på objekt (sedan Ada 2012-TC-1).

Syntax

  • funktion Scalar'Image (Argument: Scalar'Base) return String;
  • funktion Discrete'Image (Argument: Discrete'Base) return String;
  • funktion Integer'Image (Argument: Integer'Base) return String;
  • funktion 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) returnera Scalar'Base;
  • funktion Discrete'Value (Argument: String) return Discrete'Base;
  • funktion Integer'Value (Argument: String) returnerar Integer'Base;
  • funktion Enumeration'Value (Argument: String) return Enumeration'Base;
  • funktion Real'Value (Argument: String) returnera Real'Base;
  • funktion Scalar_Object 'Image return String;

Anmärkningar

Observera att 'Image kan medföra implementeringsdefinierade resultat (RM 3.5), nämligen när vissa grafiska tecken som behövs för String inte definieras i Character . Tänk på de större repertoiresna av 'Wide_Image och 'Wide_Wide_Image .

Ada 2012 (TC-1)

Tillståndet att använda attributet __Scalar_Object__'Image direkt på ett objekt lades till i Ada 2012-TC-1 (april 2016).

Skriv ut flottören med attributet Bild

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;

Resultat

2.71000E+00

Skriv ut heltal med bildattributet

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;

Resultat

17

Skriv ut uppräkning med attributet Bild

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;

Resultat

ORANGE
PEAR

Skriv ut uppräkning med attributbild

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;

Resultat

ORANGE

Skriv ut heltal med attributbild

with Ada.Text_IO;

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

Resultat

17

Skriv ut Float med attributbild

with Ada.Text_IO;

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

Resultat

2.71000E+00

Som 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;

Resultat

TRUE


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow