Tôi đang sử dụng Golang Revel cho một số dự án web và tôi đã làm như 12 dự án trong đó cho đến nay. Trong tất cả chúng tôi có rất nhiều sự thừa mã vì các kiểu trả về. Hãy xem hai chức năng sau:Làm thế nào để trả về cấu trúc kiểu động trong Golang?
func (c Helper) Brands() []*models.Brand{
//do some select on rethinkdb and populate correct model
var brands []*models.Brand
rows.All(&brands)
return brands
}
func (c Helper) BlogPosts() []*models.Post{
//do some select on rethinkdb and populate correct model
var posts []*models.Post
rows.All(&posts)
return posts
}
Như bạn có thể thấy cả hai đều trả về cùng một loại dữ liệu (loại cấu trúc). Ý tưởng của tôi là chỉ để vượt qua chuỗi var như thế này:
func (c Helper) ReturnModels(modelName string) []*interface{} {
//do rethinkdb select with modelName and return []*interface{} for modelName
}
Như thế này tôi có thể chỉ có một helper trả lại kiểu dữ liệu thay vì làm điều tương tự hơn và hơn nữa cho các mô hình khác nhau nhưng kiểu dữ liệu tương tự.
Câu hỏi của tôi là:
- Đây có phải là có thể ở tất cả
- Nếu có bạn có thể chỉ cho tôi tài liệu đúng
- Nếu không, tôi sẽ được nhiều hơn thì rất vui khi được trở lại câu trả lời của bạn :)
ca khúc Ngay @ pregmatch 1 –