>  기사  >  백엔드 개발  >  ## Go의 `new(MyStruct)`와 `&MyStruct{}`의 차이점은 무엇인가요?

## Go의 `new(MyStruct)`와 `&MyStruct{}`의 차이점은 무엇인가요?

Linda Hamilton
Linda Hamilton원래의
2024-10-25 06:54:29685검색

## What's the Difference: `new(MyStruct)` vs. `&MyStruct{}` in Go?

Go에서 new의 역할 이해

new는 원시 언어 구조에서 나타나는 것과는 달리 포인터를 만드는 데 그 목적이 있습니다. new를 사용하여 기본 요소의 값을 직접 지정할 수는 없지만 구조체와 같은 구조화된 데이터 유형에 메모리를 할당하는 데 유용한 도구가 됩니다. 이러한 시나리오에서 new는 초기화되지 않은 개체에 대한 포인터를 반환하므로 나중에 해당 속성으로 작업할 수 있습니다.

new와 &

둘 다 new(MyStruct ) 및 &MyStruct{}는 새 구조체 인스턴스에 대한 포인터를 생성하며, 사용법은 코드의 의도에 따라 달라집니다. 때로는 &MyStruct{}의 간결함이 선호되는 반면 new(MyStruct)는 힙에 메모리를 할당하려는 의도를 명시적으로 보여줍니다.

new에 대한 기타 고려 사항

Beyond 기본 유형 및 구조체, new는 슬라이스 및 맵에 적용할 수 없습니다. 대신 make([]float, 100)을 슬라이스에 사용해야 합니다.

new의 실제 응용

Go에는 내장 생성자가 없기 때문에 개발자는 종종 new를 래핑합니다. 사용자 정의 함수 내에서 호출하여 개체를 초기화하고 사용자 정의합니다. 이 접근 방식은 초기화 프로세스를 단순화하고 비공개 필드를 숨길 수 있으며 구조적 진화를 용이하게 합니다. 또한 객체 생성과 사용을 분리하여 유연성을 제공하므로 개발자는 기존 코드에 영향을 주지 않고 구조체 구조를 변경할 수 있습니다.

위 내용은 ## Go의 `new(MyStruct)`와 `&MyStruct{}`의 차이점은 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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