mirror of
https://github.com/bitechdev/ResolveSpec.git
synced 2025-11-13 09:53:53 +00:00
20 lines
308 B
Go
20 lines
308 B
Go
package reflection
|
|
|
|
import "reflect"
|
|
|
|
func Len(v any) int {
|
|
val := reflect.ValueOf(v)
|
|
valKind := val.Kind()
|
|
|
|
if valKind == reflect.Ptr {
|
|
val = val.Elem()
|
|
}
|
|
|
|
switch val.Kind() {
|
|
case reflect.Slice, reflect.Array, reflect.Map, reflect.String, reflect.Chan:
|
|
return val.Len()
|
|
default:
|
|
return 0
|
|
}
|
|
}
|