Files
EdgeNode/internal/configs/serverconfigs/configutils/copy.go

21 lines
417 B
Go
Raw Normal View History

2020-09-09 18:53:53 +08:00
package configutils
import (
"reflect"
)
// 拷贝同类型struct指针对象中的字段
func CopyStructObject(destPtr, sourcePtr interface{}) {
value := reflect.ValueOf(destPtr)
value2 := reflect.ValueOf(sourcePtr)
countFields := value2.Elem().NumField()
for i := 0; i < countFields; i++ {
v := value2.Elem().Field(i)
if !v.IsValid() || !v.CanSet() {
continue
}
value.Elem().Field(i).Set(v)
}
}