Pascal - Varian

Pascal mendukung jenis penyimpanan unik bernama varian. Anda dapat menetapkan jenis nilai sederhana apa pun dalam variabel varian. Jenis nilai yang disimpan dalam varian hanya ditentukan pada waktu proses. Hampir semua tipe sederhana dapat ditetapkan ke varian: tipe ordinal, tipe string, tipe int64.

Tipe terstruktur seperti set, record, array, file, objek, dan kelas tidak kompatibel dengan penugasan dengan varian. Anda juga dapat menetapkan penunjuk ke suatu varian.

Varian dukungan Pascal gratis.

Mendeklarasikan Varian

Anda dapat mendeklarasikan tipe varian seperti tipe lainnya menggunakan varkata kunci. Sintaks untuk mendeklarasikan tipe varian adalah -

var
   v: variant;

Sekarang, variabel varian v ini dapat digunakan untuk hampir semua tipe sederhana termasuk tipe enumerasi dan sebaliknya.

type  
   color = (red, black, white);  
var  
   v : variant;  
   i : integer;  
   b : byte;  
   w : word;  
   q : int64;  
   e : extended;  
   d : double;  
   en : color;  
   as : ansistring;  
   ws : widestring;  

begin  
   v := i;  
   v := b;  
   v := w;  
   v := q;  
   v := e;  
   v := en;  
   v := d:  
   v := as;  
   v := ws;  
end;

Contoh

Contoh berikut akan mengilustrasikan konsep -

Program exVariant;

uses variants;
type
   color = (red, black, white);

var
   v : variant;
   i : integer;
   r: real;
   c : color;
   as : ansistring;


begin
   i := 100;
   v:= i;
   writeln('Variant as Integer: ', v);

   r:= 234.345;
   v:= r;
   writeln('Variant as real: ', v);

   c := red;
   v := c;
   writeln('Variant as Enumerated data: ', v);

   as:= ' I am an AnsiString';
   v:= as;
   writeln('Variant as AnsiString: ', v);
end.

Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -

Variant as Integer: 100
Variant as real: 234.345
Variant as Enumerated data: 0
Variant as AnsiString: I am an AnsiString