Middle
Ի՞նչ են ընդհանուր տիպերը (Generics):
sobes.tech AI
Պատասխան AI-ից
Համընդհանուր տիպերը (Generics) գործիք են տիպերի պարամետրավորման համար, որը թույլ է տալիս ստեղծել համընդհանուր դասեր, ինտերֆեյսներ և մեթոդներ: Դրանք թույլ են տալիս աշխատել տարբեր տվյալների տիպերով առանց տիպային անվտանգության կորուստի ժամանակակից կոդում:
Հիմնական առավելությունները՝
- Տիպային անվտանգություն: Կոմպիլյատորը ստուգում է տիպերի համապատասխանությունը կոմպիլյացիայի փուլում, ինչը օգնում է հայտնաբերել հնարավոր սխալները նախքան ծրագրի գործարկումը:
- Կոդի կրկնօրինակի նվազեցում: Կարող եք ստեղծել մեկ դաս կամ մեթոդ, որը աշխատում է տարբեր տիպերով, փոխարենը գրել առանձին կոդ յուրաքանչյուր տիպի համար:
- Կոդի ընթեռնելիության բարձրացում: Համընդհանուր տիպերի օգտագործումը դարձնում է կոդը ավելի հստակ, ցույց տալով, թե ինչ տիպերի տվյալներով է աշխատում:
- Անհրաժեշտության վերացում հստակ տիպի փոխարկումների (casting) համար: Համընդհանուր հավաքածուների հետ աշխատելիս, անհրաժեշտ չէ հստակ փոխարկել տարրերը անհրաժեշտ տիպին՝ դրանց հանելու ժամանակ:
Օրինակ՝ Java-ում:
// Ստեղծում է ցանկ, որը կարող է պահել միայն տողեր
List<String> stringList = new ArrayList<>();
stringList.add("hello");
// stringList.add(123); // Կոմպիլյացիայի սխալ, քանի որ 123-ը տող չէ
// Տարրին հասանելիություն առանց տիպի փոխարկման
String firstElement = stringList.get(0);
C#-ում՝
// Ստեղծում է ցանկ, որը կարող է պահել միայն ամբողջ թվեր
List<int> intList = new List<int>();
intList.Add(10);
// intList.Add("world"); // Կոմպիլյացիայի սխալ, քանի որ "world"-ը ամբողջ թիվ չէ
// Տարրին հասանելիություն առանց տիպի փոխարկման
int number = intList[0];
Համընդհանուր դասի օրինակ՝
// Համընդհանուր դաս Box, որը կարող է պահել ցանկացած տիպի օբյեկտ
public class Box<T> {
private T item;
public void setItem(T item) {
this.item = item;
}
public T getItem() {
return item;
}
}
// Համընդհանուր դասի օգտագործում
Box<Integer> intBox = new Box<>();
intBox.setItem(123);
int intValue = intBox.getItem(); // Անհրաժեշտ չէ փոխարկում
Box<String> stringBox = new Box<>();
stringBox.setItem("test");
String stringValue = stringBox.getItem(); // Անհրաժեշտ չէ փոխարկում
Համընդհանուր տիպերը հզոր գործիք են՝ ստեղծելու ճկուն, անվտանգ և հեշտ պահպանվող կոդ։