Junior — Middle
Оё имкон дорад, ки функсионалияти бастаи стандартиро бо илова кардани усулҳои худ васеъ кунем?
sobes.tech AI
Ҷавоб аз AI
Дар Go, шумо наметавонед мустақиман усулҳоро ба намудҳои пакетҳои стандартӣ илова кунед, агар ин намудҳо дар пакети дигар муайян карда шудаанд. Аммо, шумо метавонед намудҳои худро бар асоси намудҳои мавҷуда (бо истифода аз alias-и навъи ё навъи нав) эҷод кунед ва ба намудҳои нав илова кунед.
Масалан:
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
}
Инчунин, функсионалӣ кардани намудҳои стандартӣ тавассути wrappers имконпазир аст, аммо на тавассути илова кардани методҳо ба намудҳои пакетҳои стандартӣ.