go1.18 Dockerfile

FROM golang:1.18beta1-bullseyeWORKDIR /go/src/appCMD echo "欢送smallForest"CMD /bin/bash

go1.18泛型代码

package mainimport "fmt"// SumInts adds together the values of m.func SumInts(m map[string]int64) int64 {    var s int64    for _, v := range m {        s += v    }    return s}// SumFloats adds together the values of m.func SumFloats(m map[string]float64) float64 {    var s float64    for _, v := range m {        s += v    }    return s}// SumIntsOrFloats sums the values of map m. It supports both int64 and float64// as types for map values.func SumIntsOrFloats[K comparable, V int64 | float64](m map[K]V) V {var s Vfor _, v := range m {s += v}return s}type Number interface {    int64 | float64}// SumNumbers sums the values of map m. Its supports both integers// and floats as map values.func SumNumbers[K comparable, V Number](m map[K]V) V {    var s V    for _, v := range m {        s += v    }    return s}func main() {    // Initialize a map for the integer values    ints := map[string]int64{        "first":  34,        "second": 12,    }    // Initialize a map for the float values    floats := map[string]float64{        "first":  35.98,        "second": 26.99,    }    fmt.Printf("Non-Generic Sums: %v and %v\n",        SumInts(ints),        SumFloats(floats))    fmt.Printf("Generic Sums: %v and %v\n",        SumIntsOrFloats[string, int64](ints),        SumIntsOrFloats[string, float64](floats))    fmt.Printf("Generic Sums, type parameters inferred: %v and %v\n",        SumIntsOrFloats(ints),        SumIntsOrFloats(floats))    fmt.Printf("Generic Sums with Constraint: %v and %v\n",        SumNumbers(ints),        SumNumbers(floats))}

https://go.dev/doc/tutorial/g...