>  기사  >  백엔드 개발  >  ## Go에서 `new` 키워드를 언제 사용해야 할까요?

## Go에서 `new` 키워드를 언제 사용해야 할까요?

Susan Sarandon
Susan Sarandon원래의
2024-10-25 05:30:02289검색

## When Should You Use the `new` Keyword in Go?

Go에서 new 사용

Go를 사용할 때는 new 키워드의 적절한 사용법을 이해하는 것이 중요합니다. 이 글의 목적은 new가 권장되는 특정 상황을 조명하여 일반적인 오해를 해결하고 명확한 설명을 제공하는 것입니다.

기본 언어 구성

제공된 예에서 볼 수 있듯이 new는 기본 언어에 적합하지 않습니다. 슬라이스와 같은 유형. 이러한 경우에는 make 명령을 사용하여 슬라이스나 맵을 초기화해야 합니다. 예:

<code class="go">func main() {
    y := make([]float, 100)
    fmt.Printf("Len = %d", len(y)) // Output: Len = 100
}</code>

구조체

구조체로 작업할 때 y := new(my_struct)와 y := &my_struct 중에서 선택하는 것은 의도된 용도와 코드 가독성에 따라 달라집니다. 두 옵션 모두 힙에 새로 할당된 구조체에 대한 포인터를 만듭니다. 그러나 포인터를 할당할 때 new가 더 명시적일 수 있는 반면 &는 더 간결한 표기법입니다.

초기화 고려 사항

Go에서 변수는 기본적으로 0 값으로 초기화됩니다. 즉, 정수, 부동 소수점 및 부울과 같은 기본 유형은 0으로 초기화되는 반면, 슬라이스, 맵 및 구조체는 각각의 nil 값으로 초기화됩니다. new 키워드는 이 동작을 변경하지 않으므로 할당된 모든 구조체의 필드는 여전히 0 값으로 초기화됩니다.

new 사용 사례

위에 언급된 제한에도 불구하고 new에는 용도가 있습니다. Go에서:

  • 0이 아닌 값으로 초기화: 0이 아닌 초기 값을 가진 구조체의 경우 new가 편리할 수 있으므로 새 구조체를 할당하고 해당 필드를 초기화할 수 있습니다. 한 단계로.
  • 비공개 필드 또는 인터페이스: 할당을 함수(예: NewMyStruct())로 래핑하면 비공개 필드를 숨기거나 인터페이스를 인스턴스화할 수 있으므로 구조체와 접근성.
  • 구조의 진화: new를 사용하면 기존 사용자에게 영향을 주지 않고 구조체의 구조를 더 쉽게 변경할 수 있습니다.

위 내용은 ## Go에서 `new` 키워드를 언제 사용해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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