github.com/golang-infrastructure/go-reflect-utils@v0.0.0-20221130143747-965ef2eb09c3/len.go (about)

     1  package reflect_utils
     2  
     3  //import (
     4  //	"reflect"
     5  //)
     6  //
     7  //// LenType 安全的计算Type的长度,如果类型不合适会返回0而不是panic
     8  //func LenType(t reflect.Type) int {
     9  //	if t.Kind() != reflect.Array {
    10  //		return 0
    11  //	}
    12  //	return t.Len()
    13  //}
    14  //
    15  //// LenValue 安全的计算Value的长度,如果类型不合适会返回0而不是panic
    16  //func LenValue(v reflect.Value) int {
    17  //	switch v.Kind() {
    18  //	case reflect.Slice, reflect.Array, reflect.Chan, reflect.Map, reflect.String, reflect.Ptr:
    19  //		return v.Len()
    20  //	default:
    21  //		return 0
    22  //	}
    23  //}