github.com/szq-123/codingpractice@v0.0.0-20240430111904-2778dfaf7994/golang/generics_test.go (about)

     1  package golang
     2  
     3  import "golang.org/x/exp/constraints"
     4  
     5  func Contain[T comparable](s []T, p T) bool {
     6  	for _, ss := range s {
     7  		if p == ss {
     8  			return true
     9  		}
    10  	}
    11  	return false
    12  }
    13  
    14  type Number interface {
    15  	int | int8 | int16 | int32 | int64 | float32 | float64
    16  }
    17  
    18  func Max[T Number](a, b T) T {
    19  	if a < b {
    20  		return b
    21  	}
    22  	return a
    23  }
    24  
    25  func Min[T constraints.Ordered](a, b T) T {
    26  	if a > b {
    27  		return b
    28  	}
    29  	return a
    30  }