필요한 인수를 모두 제공했음에도 불구하고 컴파일러는 DataResponse 구조체를 JSON( ).
제공된 코드 발췌 시도 DataResponse 구조체의 인스턴스를 생성하고 이를 JSON() 함수에 매개변수로 전달합니다. 그런데 컴파일러에서 인수가 너무 많다는 오류를 발생시킵니다.
<code class="go">type DataResponse struct { Status int `json:"status"` Data interface{} `json:"data"` } func GetUser(rw http.ResponseWriter, req *http.Request, ps httprouter.Params) { user := models.User{} resp := DataResponse(200, user) JSON(rw, resp) }</code>
이 오류는 구조체 초기화 구문이 잘못되어 발생합니다. 중괄호 주위의 공백은 중괄호를 사용한 구조체 초기화 대신 함수 호출을 나타냅니다. 문제를 해결하려면 다음과 같이 코드를 변경하십시오.
<code class="go">resp := DataResponse{200, user}</code>
중괄호를 사용하면 코드가 제공된 인수를 사용하여 DataResponse 구조체를 올바르게 초기화합니다. 컴파일러는 더 이상 인수가 너무 많다고 불평하지 않습니다.
이 수정을 통해 컴파일러는 코드를 구조체 초기화로 정확하게 식별하고 DataResponse 구조체를 JSON() 함수의 매개 변수로 올바르게 사용할 수 있습니다.
위 내용은 DataResponse 구조체를 JSON()에 전달할 때 컴파일러에서 \"과도한 인수\" 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!