შეგიძლიათ ახსნათ ერთიანი (თხა) ტიპიზაციის პრინციპი და როგორ გამოიყენება იგი პროგრამირებაში?
sobes.tech AI
პასუხი AI-სგან
დაკის ტიპი (duck typing) არის კონცეფცია პროგრამირებაში, სადაც ობიექტის ტიპი არ განისაზღვრება მისი კლასი ან მემკვიდრეობა, არამედ გარკვეული მეთოდებისა და თვისებების არსებობით.
ფრაზა "თუ რამე გამოიყურება როგორც დაკა, ცურვა როგორც დაკა და კვნესა როგორც დაკა, მაშინ ეს დაკაა" ასახავს არსს: მნიშვნელობა არაა ობიექტის ტიპი, არამედ მისი ქცევა.
C#-ში ეს არ არის შიდა მექანიზმი, როგორც დინამიკურ ენებში, მაგრამ შეიძლება იმიტირებული იყოს ინტერფეისების ან დინამიური ტიპის (dynamic) გამოყენებით. მაგალითად, თუ ობიექტი ახორციელებს საჭირო მეთოდებს, მას შეიძლება გამოიყენოს მჭიდრო ტიპის შემოწმების გარეშე.
დინამიკური მაგალითი:
void MakeItQuack(dynamic duck) {
duck.Quack();
}
class Duck {
public void Quack() {
Console.WriteLine("კვაკ!");
}
}
MakeItQuack(new Duck());
აქ მნიშვნელოვანია, რომ გადაცემული ობიექტი ჰქონდეს მეთოდი Quack, წინააღმდეგ შემთხვევაში შესრულების დროს შეცდომა მოხდება.