theme: channing-cyan
1. 对函数的支持
```go // 定义一个any类型的参数 // T 就是any类型 func printSliceT any { for _, V := range s { fmt.Printf("%v \n", v) } }
func main() { printSliceint printSlicestring // 同时我们在使用的时候也可以省略显式类型 printSlice([]int{66, 77, 88, 99, 100}) } ```
2. 声明一个泛型map
```go package main import "fmt"
// 声明一个map类型, 关键字是K 值是any --> any ==> interface{} // 并且关节词不支持any,底层不支持 type M[K string, V any] map[K]V // 这里的K不支持any,由于底层map不支持,所以使用string
func main() { m1 := M[string, int]{"key": 1} m1["key"] = 2
m2 := M[string, string]{"key": "value"}
m2["key"] = "new value"
fmt.Println(m1, m2)
} ```
3. 声明一个泛型通道
```go package main
import "fmt"
type C[T any] chan T
func main() { c1 := make(C[int], 10) c1 <- 1 c1 <- 2
c2 := make(C[string], 10)
c2 <- "hello"
c2 <- "world"
fmt.Println(<-c1, <-c2)
} ```