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에는 용도가 있습니다. Go에서:
위 내용은 ## Go에서 `new` 키워드를 언제 사용해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!