小编use*_*676的帖子

无论如何,有没有办法将两个通用模型合并为一个

type TodoUpdateLog struct {
    ID               uint                   `json:"id"`
    Name             Range[string]          `json:"name,omitempty"`
    Status           Range[string]          `json:"status,omitempty"`
    Desc             Range[json.RawMessage] `json:"desc,omitempty"`              
    Priority         Range[string]          `json:"priority,omitempty"`          
    EstimatedStartDT Range[time.Time]       `json:"estimate_start_dt,omitempty"` 
    EstimatedEndDT   Range[time.Time]       `json:"estimate_end_dt,omitempty"`   
    Owners           Range[[]string]        `json:"owners,omitempty"`            
    Followers        Range[[]string]        `json:"followers,omitempty"`         
}

type TodoUpdateRequest struct {
    ID               uint                      `json:"id"`
    Name             Optional[string]          `json:"name,omitempty"` 
    Status           Optional[string]          `json:"status,omitempty"`
    Desc             Optional[json.RawMessage] `json:"desc,omitempty"`              
    Priority         Optional[string]          `json:"priority,omitempty"`          
    EstimatedStartDT Optional[time.Time]       `json:"estimate_start_dt,omitempty"` 
    EstimatedEndDT   Optional[time.Time]       `json:"estimate_end_dt,omitempty"`   
    Owners           Optional[[]string]        `json:"owners,omitempty"`            
    Followers        Optional[[]string]        `json:"followers,omitempty"`         
}

type TodoUpdate[T any] struct {
    ID               uint                      `json:"id"`
    Name             T[string]          `json:"name,omitempty"` 
    Status           T[string]          `json:"status,omitempty"`
    Desc             T[json.RawMessage] …
Run Code Online (Sandbox Code Playgroud)

generics go

6
推荐指数
1
解决办法
87
查看次数

标签 统计

generics ×1

go ×1