>  기사  >  백엔드 개발  >  DataResponse 구조체를 JSON()에 전달할 때 컴파일러에서 \"과도한 인수\" 오류가 발생하는 이유는 무엇입니까?

DataResponse 구조체를 JSON()에 전달할 때 컴파일러에서 \"과도한 인수\" 오류가 발생하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-02 17:48:29239검색

Why Does My Compiler Throw an

DataResponse 구조체 인수 관련 컴파일러 문제

필요한 인수를 모두 제공했음에도 불구하고 컴파일러는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.