有更好的方法嗎?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貢獻(xiàn)1886條經(jīng)驗 獲得超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 關(guān)注
- 136 瀏覽
添加回答
舉報
0/150
提交
取消