object.go 395 B

12345678910111213141516171819202122
  1. package domain
  2. import "git.sxidc.com/service-supports/fserr"
  3. type IDType interface {
  4. ~string | ~uint64
  5. }
  6. type Object interface {
  7. }
  8. // TODO 添加简化函数,通过字段名称设置和获取值
  9. func ToConcreteObject[T Object](object Object) (T, error) {
  10. concrete, ok := object.(T)
  11. if !ok {
  12. var zero T
  13. return zero, fserr.New("领域对象转化失败")
  14. }
  15. return concrete, nil
  16. }