Generics Basics
Slice Helper
A generic helper can work with slices that hold different element types.
Slice Helper
slice_helper.go
package main
import "fmt"
// Generic shape: Last[T any](items []T) T
func LastString(items []string) string {
return items[len(items)-1]
}
func main() {
var extra =
names := []string{"ada", "grace", extra}
last := LastString(names)
fmt.Println("count=", len(names))
fmt.Println("last=", last)
fmt.Println("same=", last == extra)
}
package main
import "fmt"
// Generic shape: Last[T any](items []T) T
func LastString(items []string) string {
return items[len(items)-1]
}
func main() {
var extra =
names := []string{"ada", "grace", extra}
last := LastString(names)
fmt.Println("count=", len(names))
fmt.Println("last=", last)
fmt.Println("same=", last == extra)
}
package main
import "fmt"
// Generic shape: Last[T any](items []T) T
func LastString(items []string) string {
return items[len(items)-1]
}
func main() {
var extra =
names := []string{"ada", "grace", extra}
last := LastString(names)
fmt.Println("count=", len(names))
fmt.Println("last=", last)
fmt.Println("same=", last == extra)
}
generic slice
Generic slice helpers reuse the same indexing and length logic across element types. The trace uses a concrete string slice and shows the generic shape in a comment.