Junior — Middle
Vai ir iespējams īstenot manto mehānismu Go valodā?
sobes.tech AI
Atbilde no AI
Go valodā nav klasiskās mantošanas, kā tas ir objektorientētajās valodās, piemēram, Java vai C++. Tā vietā Go izmanto struktūru kompozīciju un embedding (iekļaušanu), lai atkārtoti izmantotu kodu un paplašinātu funkcionalitāti.
Piemēram, var iekļaut vienu struktūru citā, un iekļautās struktūras metodes būs pieejamas caur ārējo struktūru:
package main
import "fmt"
type Animal struct {
Name string
}
func (a Animal) Speak() {
fmt.Println(a.Name, "runā")
}
type Dog struct {
Animal // iekļaušana
}
func main() {
d := Dog{Animal{Name: "Bobic"}}
d.Speak() // izsauc Animal struktūras Speak metodi
}
Tādējādi Go sasniedz uzvedību, kas līdzīga mantojumam, bet tā realizācija ir caur kompozīciju, kas veicina elastīgāku un vienkāršāku dizainu.