From: qydysky Date: Thu, 10 Jun 2021 18:05:38 +0000 (+0800) Subject: 语法糖 X-Git-Tag: v0.5.22~1 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=4367eea6bcd2229850068699afc818c48b07b5c5;p=part%2F.git 语法糖 --- diff --git a/util/util.go b/util/util.go new file mode 100644 index 0000000..a432f08 --- /dev/null +++ b/util/util.go @@ -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 +} +