golang을 처음 사용하여 julienschmidt/httprouter를 사용하여 웹 프로젝트를 만들려고합니다. 좋은 형식의 잘 짜여진 프로젝트를 만들기 위해 검색 중이므로 퍼포먼스에 대한 두 가지 질문이 있습니다. 내가 만든 그래서 내 경우
나는 요청에서 개체를 반환하는 함수를 만들려면 :Golang - 변수 전달 및 모범 사례
// StoreController
func (storeController *StoreController) New(w http.ResponseWriter, r *http.Request) {
store, err := utilities.GetStoreFromRequest(r)
// other stuff
return
}
// Utilities package
func GetStoreFromRequest(r *http.Request) (*models.Store, error) {
store := models.Store{}
err := json.NewDecoder(r.Body).Decode(&store)
// return a pointer is better than returning an object?
return &store, err
}
은 마우스 오른쪽 아니면 storeController에 저장 객체를 만들고에 전달하는 것이 좋습니다 같은 기능 : 다른 질문은 포인터에 관한
// StoreController
func (storeController *StoreController) New(w http.ResponseWriter, r *http.Request) {
store := models.Store{}
err := utilities.GetStoreFromRequest(r, &store)
// other stuff
return
}
// Utilities package
func GetStoreFromRequest(r *http.Request, store *models.Store) error {
err := json.NewDecoder(r.Body).Decode(store)
return err
}
은 항상 대신 객체 및 오류 여부의 포인터 전달하고 반환 너무 편집증? 감사합니다.
가능한 반환 주소를 생성해야하는 이유는 무엇입니까? (http://stackoverflow.com/questions/31932822/why-should-constructor-of-go-return-address/31934189#31934189); 및 [포인터와 매개 변수의 값 및 반환 값] (http://stackoverflow.com/questions/23542989/pointers-vs-values-in-parameters-and-return-values)을 참조하십시오. – icza