浏览代码

添加反射函数

yjp 6 月之前
父节点
当前提交
a8b422a6b6
共有 2 个文件被更改,包括 8 次插入0 次删除
  1. 4 0
      reflectutils/type.go
  2. 4 0
      reflectutils/value.go

+ 4 - 0
reflectutils/type.go

@@ -36,6 +36,10 @@ func SliceTypeElem(t reflect.Type) reflect.Type {
 	return elem
 }
 
+func IsSliceTypeOf(t reflect.Type, elementKind reflect.Kind) bool {
+	return t.Kind() == reflect.Slice && t.Elem().Kind() == elementKind
+}
+
 func IsTypeInteger(t reflect.Type) bool {
 	return t.Kind() >= reflect.Int && t.Kind() <= reflect.Int64
 }

+ 4 - 0
reflectutils/value.go

@@ -40,6 +40,10 @@ func SliceValueElem(v reflect.Value) reflect.Value {
 	return elem
 }
 
+func IsSliceValueOf(v reflect.Type, elementKind reflect.Kind) bool {
+	return v.Kind() == reflect.Slice && v.Elem().Kind() == elementKind
+}
+
 func IsValueInteger(v reflect.Value) bool {
 	return v.Kind() >= reflect.Int && v.Kind() <= reflect.Int64
 }