Uzywac Vriant'ow czy nie uzywac...? oto jest pytanie

0

no wlasnie

czy stosowac zmienne typu variant jako parametry w procedurach i funkcjach?
niby latwo, bo nie trzeba robic kilku takich samych procedur dla roznych typow danych
ale z drugiej strony wprowadzi to pewna dowolnosc - a to sprzyja powstawaniu bledow
w programach...

Do tej pory myslalem (i dalej tak mysle) ze typ variant to lamerstwo...
ale moze czas zmienic zdanie?

0

Typ variant jest z pewnością bardzo wygodny. Jednak za wygodą nie idzie wydajność, ten typ jest znacznie wolniejszy od standardowych typów. Jeśli nie wykonujemy jakiś skomplikowanych operacji to możemy go używać. Szczególnie przydatny może się okazać w procedurach bezpośrednio obsługujących interface użytkownika.

Jeżeli chodzi o opinię, że ten typ sprzyja powstawaniu błędów to bym polemizował. Przecież jeśli do standardowego typu np. integer wstawisz napis to też masz błąd. Obojętnie czy typ jest standardowy czy variant trzeba pamiętać aby mieć ograniczone zaufanie do użytkownika. Mogę jedynie przyznać, że błedy powstałe przy używaniu typu variant mogą być trudniejsze do wykrycia.

Lamerstwo? W tym momencie obrażasz zwolenników Perla i PHP, przecież tam nie można wprowadzić danych innym typem niż variant.

Jako ciekawostkę podam, że w Perlu do łączenia napisów używa się operatora kropki (.), inne są również operatory testowania i porównywania dla zmiennych liczbowych, a inne dla tekstowych. Te rozróżnienie na operatory tekstowe i liczbowe wyklucza takie błędy jakie standardowo powtarza się przy opisie typu variant w Delphi, czyli '10'+'20' = '1020'

Wynikiem działania takiego kodu w Perlu

$a = '10';
$b = '20';

$c = $a+$b;

będzie 30, a nie 1020.

Teraz powinno się zadać pytanie czy lamerstwem jest używanie typu variant czy programowanie w Delphi ;P

0

Zależy od przeznaczenia. W przypadku dużych struktur zajmują zbyt dużo miejsca. W wielkich pętlach są za wolne. W pojedynczej procedurze ok, nie trzeba przeciążać. Ja jednak jestem zwolennikiem konkretnego typu danych. Czytelność kodu. Ale wracając do pytania. Wiele rzeczy jest indywidualną sprawą programisty, która sprawia, że łatwiej mu kodować.

1 użytkowników online, w tym zalogowanych: 0, gości: 1