Pascal - Çeşitler

Pascal, değişken adı verilen benzersiz bir depolama türünü destekler. Bir varyant değişkeninde herhangi bir basit türde değer atayabilirsiniz. Bir varyantta saklanan bir değerin türü yalnızca çalışma zamanında belirlenir. Neredeyse tüm basit türler varyantlara atanabilir: sıra türleri, dizge türleri, int64 türleri.

Kümeler, kayıtlar, diziler, dosyalar, nesneler ve sınıflar gibi yapılandırılmış türler, bir varyantla atama uyumlu değildir. Bir varyanta bir işaretçi de atayabilirsiniz.

Free Pascal çeşitleri destekler.

Bir Varyant Bildirmek

Varyant türünü diğer türler gibi tanımlayabilirsiniz. varanahtar kelime. Bir varyant türünü bildirmek için sözdizimi -

var
   v: variant;

Şimdi, bu değişken değişkeni v, numaralandırılmış türler dahil hemen hemen tüm basit türlere atanabilir ve bunun tersi de geçerlidir.

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;

Misal

Aşağıdaki örnek kavramı açıklayacaktır -

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.

Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -

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