Sobes.tech
Junior — Middle

Můžete vysvětlit princip unární (kachní) typizace a jak se uplatňuje v programování?

sobes.tech AI

Odpověď od AI

Typ duck (duck typing) je koncept v programování, kdy typ objektu není určen jeho třídou nebo dědičností, ale přítomností určitých metod a vlastností.

Věta "Pokud něco vypadá jako kachna, plave jako kachna a kváká jako kachna, pak je to kachna" odráží podstatu: není důležitý typ objektu, ale jeho chování.

V C# to není vestavěný mechanismus jako v dynamických jazycích, ale lze jej napodobit pomocí rozhraní nebo dynamického typu (dynamic). Například pokud objekt implementuje potřebné metody, může být použit bez přísné kontroly typu.

Příklad s dynamic:

void MakeItQuack(dynamic duck) {
    duck.Quack();
}

class Duck {
    public void Quack() {
        Console.WriteLine("Kvá kv!");
    }
}

MakeItQuack(new Duck());

Zde je důležité, aby předaný objekt měl metodu Quack, jinak dojde k chybě za běhu.