Junior — Middle
როგორ არის განხორციელებული ობიექტზე ორიენტირებული სტრუქტურა Go ენისა და როგორ განსხვავდება ის კლასიკური სტრუქტურიდან?
sobes.tech AI
პასუხი AI-სგან
Go dilində obyekt yönümlü proqramlaşdırma, klasslar və irsiyyət yerinə, kompozisiya və interfeyslər vasitəsilə həyata keçirilir.
Əsas fərqlər:
- Klassların olmaması: Go-da klasslar yoxdur, əvəzinə strukturlar (
struct) istifadə olunur, bunlar sahələr və metodlar ehtiva edir. - İrsiyyət yerinə kompozisiya: Strukturun irsi alınması yerinə, onu başqa bir struktur daxilində yerləşdirmək mümkündür, bu kodun təkrar istifadəsini təmin edir.
- Interfeyslər: Go-da interfeyslər, strukturun həyata keçirməli olduğu metodlar toplusunu müəyyən edir. Tiplər, lazım olan metodlara malikdirsə, avtomatik olaraq interfeysi həyata keçirir, açıq şəkildə bildirməyə ehtiyac yoxdur.
Nümunə:
package main
import "fmt"
type Animal interface {
Speak() string
}
type Dog struct {}
func (d Dog) Speak() string {
return "Woof!"
}
type Cat struct {}
func (c Cat) Speak() string {
return "Meow!"
}
func main() {
animals := []Animal{Dog{}, Cat{}}
for _, a := range animals {
fmt.Println(a.Speak())
}
}
Beləliklə, Go daha sadə və çevik obyekt yönümlü model təklif edir, bu model interfeyslər və kompozisiya üzərində qurulmuşdur, klassik irsiyyətin mürəkkəbliyi olmadan.