Leksykon IT › Programowanie › Obiekty cech (trait objects)

Obiekty cech (trait objects)

Programowanie Svenska → Zaktualizowano: 2026-10-07

Rustowy sposób na dynamiczną dyspozycję: dyn Trait ukrywa konkretny typ, a metodę wyszukuje w czasie działania w tablicy vtable.

Kod generyczny w Ruście zwykle jest monomorfizowany — kompilator tworzy osobną kopię dla każdego konkretnego typu, co daje bezpośrednie wywołania kosztem większych binariów. Czasem to niemożliwe: wektor mający przechowywać różne rodzaje figur nie może mieć jednego konkretnego typu elementu. Wtedy wchodzi Box<dyn Draw>, gdzie każda wartość to para wskaźników — jeden do danych, drugi do tablicy implementacji metod danego typu. Wywołanie staje się pośrednie i nie można go wstawić inline, ale kod istnieje w jednym egzemplarzu. Nie każda cecha się kwalifikuje: reguły bezpieczeństwa obiektowego wykluczają m.in. metody generyczne, bo vtable nie pomieści nieskończenie wielu wariantów.

← Wróć do leksykonu