Junior — Middle
Go dilində obyekt yönümlü struktur necə həyata keçirilir və klassikdən necə fərqlənir?
sobes.tech Süni İntellekt
AI-dan cavab
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ə, sahələr və metodlar ehtiva edən strukturlar (
struct) istifadə olunur. - İrsiyyət yerinə kompozisiya: Strukturun irsi alınması yerinə, onu başqa bir struktur daxilində yerləşdirmək mümkündür, bu da 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, klassik irsiyyətin mürəkkəbliyi olmadan, interfeyslər və kompozisiya əsasında daha sadə və çevik obyekt yönümlü proqramlaşdırma modeli təklif edir.