Junior — Middle
Go тіліне объекті-бағытталған құрылым қалай жүзеге асырылған және ол классикалық құрылымнан қалай ерекшеленеді?
sobes.tech AI
AI-дан жауап
Go тілінде объектіге бағытталған құрылым композиция мен интерфейстер арқылы жүзеге асырылады, класс және мұрагерлік арқылы емес, дәстүрлі ООП-дағындай.
Негізгі айырмашылықтар:
- Класс жоқ: Go тілінде класс жоқ, оның орнына өрістер мен әдістері бар құрылымдар (
struct) пайдаланылады. - Мұрагерлік орнына композиция: Құрылымдарды мұрагерлікке қосу арқылы кодты қайта пайдалану мүмкіндігі бар.
- Интерфейстер: Go тіліндегі интерфейстер әдістер жиынтығын анықтайды, оны құрылымдар жүзеге асырады. Егер құрылым қажетті әдістерді қамтыса, ол автоматты түрде интерфейсті жүзеге асырады, нақты көрсету қажет емес.
Мысал:
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())
}
}
Осылайша, Go тілі интерфейстер мен композицияға негізделген қарапайым әрі икемді объектіге бағытталған модель ұсынады, класс мұрагерлігінің күрделілігінсіз.