我正在嘗試將一個結構從一個函數返回到另一個函數以與 API 一起使用。該功能是為了減少我正在開發的 API 中其他地方的重復代碼。我收到以下錯誤:無法在分配中使用 getProjectLocations(params) (類型 []ProjectLocation)作為類型 []ProjectLocation代碼如下:func GetProject(w http.ResponseWriter, r *http.Request) { params := mux.Vars(r)["uuid"] type ProjectLocation struct { UUID string `json:"uuid"` Location string `json:"location"` Primary bool `json:"is_primary"` } type Project struct { UUID string `json:"uuid"` Owner null.String `json:"project_owner"` Name string `json:"project_name"` Locations []ProjectLocation `json:"locations"` } q := `SELECT p.uuid, p.project_owner, p.project_name, p.project_type, p.project_status, p.created_date, p.created_by, p.last_modified, p.last_modified_by FROM projects p WHERE p.uuid=$1 LIMIT 1;` rows, err := global.DB.Query(q, params) global.CheckDbErr(err) var project Project for rows.Next() { err = rows.Scan( &project.UUID, &project.Owner, &project.Name, ) global.CheckDbErr(err) } project.Locations = getProjectLocations(params) rows.Close() json.NewEncoder(w).Encode(project)}func getProjectLocations(uuid string) []ProjectLocation { var Locations []ProjectLocation q := `SELECT uuid,location,is_primary FROM project_locations WHERE project_uuid=$1` rows, err := global.DB.Query(q, uuid) global.CheckDbErr(err) for rows.Next() { var location ProjectLocation err = rows.Scan( &location.UUID, &location.Location, &location.Primary, ) Locations = append(Locations, location) } return Locations}我相信我正在將一個[]ProjectLocation結構返回給 get project 函數,所以作為初學者我有點困惑。
1 回答

桃花長相依
TA貢獻1860條經驗 獲得超8個贊
func GetProject(w http.ResponseWriter, r *http.Request) {
params := mux.Vars(r)["uuid"]
type ProjectLocation struct {
UUID string `json:"uuid"`
Location string `json:"location"`
Primary bool `json:"is_primary"`
}
// ...
}
func getProjectLocations(uuid string) []ProjectLocation {
// ...
}
type ProjectLocation是本地的func GetProject.
- 1 回答
- 0 關注
- 183 瀏覽
添加回答
舉報
0/150
提交
取消