泛型的使用细节

  使用接口定义泛型

package main

import "fmt"

// G 使用接口定义一个名为G的泛型
type G interface {
   int | string // 该泛型的数据类型可以是int,也可以是string
}

// InSlice 在自定义函数里使用泛型G
func InSlice[T G](needle T, haystack []T) bool {
   for _, value := range haystack {
      if value == needle {
         return true
      }
   }

   return false
}

func main() {
   num := 2
   sliceInt := []int{9, 5, 2, 7}
   if InSlice(num, sliceInt) {
      fmt.Printf("%+v%+v\n", num, sliceInt) // 2 在 [9 5 2 7] 里
   } else {
      fmt.Printf("%+v 不在 %+v\n", num, sliceInt)
   }
}

  未完待续……

Copyright © 2024 码农人生. All Rights Reserved