Ricerca…


introduzione

Gli attributi di sottotipo 'Image e 'Value assumerà, rispettivamente, un valore scalare e una stringa e restituiscono, rispettivamente, una stringa e un valore scalare. Il risultato di 'Image può essere inserito in 'Value per ottenere il valore originale. Il contrario è anche vero.

L' __Scalar_Object__'Image può essere utilizzato direttamente sugli oggetti (da Ada 2012-TC-1).

Sintassi

  • function Scalar'Image (Argument: Scalar'Base) return String;
  • function Discrete'Image (Argument: Discrete'Base) return String;
  • function Integer'Image (Argument: Integer'Base) return String;
  • function Enumeration'Image (Argument: Enumeration'Base) return String;
  • function Real'Image (Argument: Real'Base) return String;
  • function Numeric'Image (Argument: Numeric'Base) return String;
  • function Scalar'Value (Argument: String) return Scalar'Base;
  • function Discrete'Value (Argument: String) return Discrete'Base;
  • function Integer'Value (Argument: String) return Integer'Base;
  • function Enumeration'Value (Argument: String) return Enumeration'Base;
  • function Real'Value (Argument: String) restituisce Real'Base;
  • function Scalar_Object 'Image return String;

Osservazioni

Si noti che 'Image può sostenere risultati definiti dall'implementazione (RM 3.5), ovvero quando alcuni caratteri grafici necessari per il risultato String non sono definiti in Character . Considera i repertori più ampi di 'Wide_Image e 'Wide_Wide_Image .

Ada 2012 (TC-1)

L'autorizzazione per utilizzare l'attributo __Scalar_Object__'Image direttamente su un oggetto è stata aggiunta in Ada 2012-TC-1 (aprile 2016).

Stampa float usando l'attributo 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;

Risultato

2.71000E+00

Stampa il numero intero usando l'attributo Immagine

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;

Risultato

17

Stampa l'enumerazione usando l'attributo Immagine

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;

Risultato

ORANGE
PEAR

Stampa Enumerazione usando l'attributo Immagine

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;

Risultato

ORANGE

Stampa intero usando l'immagine attributo

with Ada.Text_IO;

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

Risultato

17

Stampa Float usando l'attributo Image

with Ada.Text_IO;

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

Risultato

2.71000E+00

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

Risultato

TRUE


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow