Junior — Middle
Bővíthetőek-e az alapcsomagok funkciói saját módszerek hozzáadásával?
sobes.tech MI
Válasz az MI-től
A Go nyelvben nem lehet közvetlenül módszereket hozzáadni a standard csomagok típusaihoz, ha ezek a típusok más csomagban vannak definiálva. Azonban saját típusokat hozhatunk létre a meglévők alapján (type alias vagy új típus segítségével), és hozzáadhatunk módszereket az új típusokhoz.
Példa:
package main
import (
"fmt"
"strings"
)
type MyString string
func (s MyString) Reverse() string {
runes := []rune(string(s))
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
runes[i], runes[j] = runes[j], runes[i]
}
return string(runes)
}
func main() {
var s MyString = "hello"
fmt.Println(s.Reverse()) // olleh
}
Így a standard típusok funkcionalitását wrapper-ek segítségével lehet bővíteni, de nem lehet közvetlenül módszereket hozzáadni a standard csomagok típusaihoz.