Junior — Middle
Ի՞նչ տարբերություն կա ծրագրավորման լեզվում մեթոդներ չպարունակող կառուցվածքի և ինտերֆեյսի միջև։
sobes.tech AI
Պատասխան AI-ից
Go լեզվում, կառուցվածքը (struct) կոնկրետ տվյալների տեսակ է, որը պարունակում է դաշտերի (փոփոխականների) հավաքածու։ Այն նկարագրում է, թե ինչպես են տվյալները կազմակերպված, բայց ինքնին չի պարունակում վարքագիծ։
Ինտերֆեյսը (interface) Go-ում նկարագրում է մեթոդների հավաքածու, որը պետք է իրականացնել մի տեսակ, որպեսզի համապատասխաներ այդ ինտերֆեյսին։ Ինտերֆեյսը չի պարունակում տվյալներ, միայն մեթոդների ստորագրություններ։
Հիմնական տարբերությունները՝
- Կառուցվածք՝ դա կոնկրետ իրականացում է դաշտերով։
- Ինտերֆեյս՝ աբստրակցիա, որը նկարագրում է վարքագիծը մեթոդների միջոցով։
- Կառուցվածքը կարող է իրականացնել մեկ կամ մի քանի ինտերֆեյսներ, եթե ունի համապատասխան մեթոդներ։
Օրինակ՝
// Մեթոդներ չունեցող կառուցվածք
type User struct {
Name string
Age int
}
// Մեթոդով ինտերֆեյս
type Greeter interface {
Greet() string
}
// Ինտերֆեյսի իրականացում
func (u User) Greet() string {
return "Hello, " + u.Name
}
Այստեղ, User — դաշտերով կառուցվածք է, իսկ Greeter — վարքագիծը նկարագրող ինտերֆեյս։ Մեթոդ Greet չլինելու դեպքում, User կառուցվածքը չի իրականացնում Greeter ինտերֆեյսը։