Middle+
Генерикҳо дар Go чистанд? Аллакай истифода бурдед?
sobes.tech AI
Ҷавоб аз AI
Генерикҳо дар Go механизми параметргузории намудҳо мебошанд, ки имкон медиҳад, ки функсияҳо, сохторҳо ва интерфейсҳо бо намудҳои гуногуни маълумот нависанд, бе такрор кардани код. Генерикҳо аввалин бор дар Go аз нусхаи 1.18 пайдо шуданд.
Масалан барои истифодаи генерикҳо барои функсияе, ки аввалин унсури слайсро бармегардонад:
package main
import "fmt"
func First[T any](slice []T) T {
return slice[0]
}
func main() {
nums := []int{1, 2, 3}
words := []string{"салом", "ҷаҳон"}
fmt.Println(First(nums)) // 1
fmt.Println(First(words)) // салом
}
Ман барои навиштани контейнерҳо ва утилитҳои умумӣ истифода кардам, ки ин ба таври назаррас такроршавии кодро кам мекунад ва хонданро беҳтар мекунад.