有更好的方法吗?var collection []stringanyFunc(&collection) // validanyFunc(collection) // invalidanyFunc(nil) // invalidanyFunc("test") // invalidfunc anyFunc(collection interface{}) error { rv := reflect.ValueOf(collection) if rv.Kind() != reflect.Ptr || rv.IsNil() || reflect.Indirect(reflect.ValueOf(collection)).Kind() != reflect.Slice { return errors.New("Invalid collection type, need pointer to slice.") } return nil}play.golang.org上的完整示例
1 回答
MM们
TA贡献1886条经验 获得超2个赞
func loadData(collection interface{}) error {
rv := reflect.ValueOf(collection)
if rv.Kind() == reflect.Ptr && rv.Elem().Kind() == reflect.Slice {
return nil
}
return errors.New("Invalid collection type, need pointer to slice.")
}
- 1 回答
- 0 关注
- 112 浏览
添加回答
举报
0/150
提交
取消