通过golang反射机制,实现一种可以Array、Slice、String、Map、Chan类型通用的求取len()的函数方法。
函数代码:
//支持Array、Slice、String、Map、Chan类型求取长度
func Len(v interface{}) int {
typeVal := reflect.ValueOf(v)
switch typeVal.Kind() {
case reflect.Array, reflect.Slice, reflect.String, reflect.Map, reflect.Chan:
return typeVal.Len()
default:
return -1
}
return -1
}