>백엔드 개발 >Golang >Go에서 임베디드 구조체를 초기화하는 방법: 2가지 접근 방식 가이드

Go에서 임베디드 구조체를 초기화하는 방법: 2가지 접근 방식 가이드

Susan Sarandon
Susan Sarandon원래의
2024-11-17 15:44:02404검색

How to Initialize an Embedded Struct in Go: A Two-Approach Guide

Go에서 내장 구조체 초기화

Go에서 내장 구조체로 작업할 때 일반적인 시나리오는 내부 익명 구조체를 초기화하는 것입니다. 이 문서에서는 이러한 시나리오를 다루며 두 가지 접근 방식을 사용하여 초기화를 달성하는 방법에 대한 명확한 이해를 제공합니다.

다음 내장 구조체 MyRequest를 고려하세요.

type MyRequest struct {
    http.Request
    PathParams map[string]string
}

MyRequest를 초기화하려면 다음을 설정해야 합니다. 내장된 http.Request 구조체의 값. 수행 방법은 다음과 같습니다.

func New(origRequest *http.Request, pathParams map[string]string) *MyRequest {
    req := new(MyRequest)
    req.PathParams = pathParams
    req.Request = origRequest
    return req
}

이 접근 방식에서는 먼저 새 MyRequest 객체를 생성하고 이를 req에 할당합니다. 그런 다음 그에 따라 PathParams 필드를 설정합니다. 그런 다음 req.Request를 참조하여 포함된 http.Request 구조체에 액세스하고 설정합니다.

또는 다음 구문을 사용하여 포함된 구조체를 초기화할 수도 있습니다.

req := &MyRequest{
  PathParams: pathParams
  Request: origRequest
}

여기서는 필수 필드를 사용하여 익명 구조체를 만듭니다. 적절한 초기화를 위해서는 포함된 구조체 이름 앞에 '&'를 붙이는 것이 중요합니다. 그러면 원하는 값을 가진 MyRequest 객체가 생성됩니다.

두 접근 방식 모두 MyRequest 내에 포함된 http.Request 구조체를 효과적으로 초기화하므로 필요에 따라 이를 사용자 정의하고 사용할 수 있습니다. 자세한 내용은 포함된 구조체의 명명된 필드에 대한 Go 사양을 참조하세요.

위 내용은 Go에서 임베디드 구조체를 초기화하는 방법: 2가지 접근 방식 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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