php的array跟go的array,实现类似php的array_column方法
``` go
func SliceColumn(structSlice []interface{}, key string) []interface{} {
rt := reflect.TypeOf(structSlice)
rv := reflect.ValueOf(structSlice)
if rt.Kind() == reflect.Slice { //切片類型
var sliceColumn []interface{}
elemt := rt.Elem() //獲取切片元素類型
for i := 0; i < rv.Len(); i++ {
inxv := rv.Index(i)
if elemt.Kind() == reflect.Struct {
for i := 0; i < elemt.NumField(); i++ {
if elemt.Field(i).Name == key {
strf := inxv.Field(i)
switch strf.Kind() {
case reflect.String:
sliceColumn = append(sliceColumn, strf.String())
case reflect.Float64:
sliceColumn = append(sliceColumn, strf.Float())
case reflect.Int, reflect.Int64:
sliceColumn = append(sliceColumn, strf.Int())
default:
//do nothing
}
}
}
}
}
return sliceColumn
}
return nil
}
```
有疑問加站長微信聯系(非本文作者))
總結
以上是生活随笔為你收集整理的php的array跟go的array,实现类似php的array_column方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 55寸拼接屏长宽多少厘米
- 下一篇: 麂皮鞋怎么清洗?麂皮鞋上油了怎么办