Sobes.tech
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.