reflect.go 485 B

123456789101112131415161718192021222324252627
  1. package sprig
  2. import (
  3. "fmt"
  4. "reflect"
  5. )
  6. func typeIs(target string, src interface{}) bool {
  7. return target == typeOf(src)
  8. }
  9. func typeIsLike(target string, src interface{}) bool {
  10. t := typeOf(src)
  11. return target == t || "*"+target == t
  12. }
  13. func typeOf(src interface{}) string {
  14. return fmt.Sprintf("%T", src)
  15. }
  16. func kindIs(target string, src interface{}) bool {
  17. return target == kindOf(src)
  18. }
  19. func kindOf(src interface{}) string {
  20. return reflect.ValueOf(src).Kind().String()
  21. }