Junior — Middle
Kun je de functionaliteit van standaardpakketten uitbreiden door er je eigen methoden aan toe te voegen?
sobes.tech AI
Antwoord van AI
In Go kunnen methoden niet rechtstreeks worden toegevoegd aan types uit standaardpakketten als deze types in een ander pakket zijn gedefinieerd. Echter, je kunt je eigen types maken op basis van bestaande types (via type-aliassen of nieuwe types) en methoden toevoegen aan deze nieuwe types.
Voorbeeld:
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
}
Op deze manier kun je de functionaliteit van standaardtypes uitbreiden via wrappers, maar niet door direct methoden toe te voegen aan types uit standaardpakketten.