我有两个函数,如下所示,它们看起来很相似,但使用不同的函数来查询 db。由于 Go 不鼓励重载方法,冗余是否可以接受?或者我应该将它们重构为一个函数?欢迎所有评论。var getCustomers = func() ([]customer, error) { return nil, nil}var getCustomerById = func(int64) (*customer, error) { return nil, nil}func listCustomer(w http.ResponseWriter, r *http.Request) *appError { cus, err := getCustomers() if err != nil { return &appError{err, "No customer found", 404} } res, err := json.Marshal(cus) if err != nil { return &appError{err, "Can't display record", 500} } fmt.Fprint(w, string(res)) return nil}func viewCustomer(w http.ResponseWriter, r *http.Request, id int64) *appError { cus, err := getCustomerByID(id) if err != nil { return &appError{err, "No customer found", 404} } res, err := json.Marshal(cus) if err != nil { return &appError{err, "Can't display record", 500} } fmt.Fprint(w, string(res)) return nil}建议使用 -1 列出所有客户,但我不确定这是否是最好的:func viewCustomer(w http.ResponseWriter, r *http.Request, id int64) *appError { var c *customer var clist []customer var err error if id < 0 { clist, err = getCustomers() res, err := json.Marshal(clist) if err != nil { return &appError{err, "Can't display record", 500} } fmt.Fprint(w, string(res)) return nil } else { c, err = getCustomerById(id) res, err := json.Marshal(c) if err != nil { return &appError{err, "Can't display record", 500} } fmt.Fprint(w, string(res)) return nil }}
1 回答
- 1 回答
- 0 关注
- 201 浏览
添加回答
举报
0/150
提交
取消