]> 127.0.0.1 Git - part/.git/commitdiff
语法糖
authorqydysky <qydysky@foxmail.com>
Thu, 10 Jun 2021 18:05:38 +0000 (02:05 +0800)
committerqydysky <qydysky@foxmail.com>
Thu, 10 Jun 2021 18:05:38 +0000 (02:05 +0800)
util/util.go [new file with mode: 0644]

diff --git a/util/util.go b/util/util.go
new file mode 100644 (file)
index 0000000..a432f08
--- /dev/null
@@ -0,0 +1,22 @@
+package part
+
+import (
+       "reflect"
+)
+
+//语法糖
+
+//数组切片,重新分配内存
+// i := []int{0,1,2}
+// b := SliceCut(i[:1]).([]int)
+func SliceCopy(src interface{}) (des interface{}) {
+       srcV := reflect.ValueOf(src)
+       if sk := srcV.Kind();sk != reflect.Slice && sk != reflect.Array {
+               panic(&reflect.ValueError{Method:"reflect.Copy", Kind:sk})
+       }
+       desV := reflect.MakeSlice(srcV.Type(),srcV.Len(),srcV.Len())
+       reflect.Copy(desV, srcV)
+       des = desV.Interface()
+       return
+}
+