Go에서 구조체 초기화는 일반적으로 다음 예에서 볼 수 있듯이 중괄호 { 및 }를 사용하여 수행됩니다.
<code class="go">item1 := Item{1, "Foo"}</code>
그러나 아래와 같이 괄호()를 사용하여 구조체를 초기화하는 것도 가능합니다.
<code class="go">item2 := (Item{2, "Bar"})</code>
괄호 안에 있는 초기화의 영향:
둘 다 초기화 형식으로 인해 동일한 항목 값이 생성됩니다. 괄호로 묶인 초기화는 특정 이점이나 기능 변경을 제공하지 않습니다.
괄호를 사용해야 하는 경우:
특정 제어 구조 내에서 구조체를 초기화할 때 괄호가 필요합니다. 진술. 괄호가 없으면 컴파일러에서 구문 분석이 모호해져서 오류가 발생할 수 있습니다. 예를 들어,
<code class="go">if i := Item{3, "a"}; i.Id == 3 { }</code>
이 코드는 여는 중괄호 {가 복합 리터럴에 속하는지 if 문의 본문에 속하는지 컴파일러가 확신할 수 없기 때문에 컴파일 오류를 발생시킵니다. 이 모호성을 해결하기 위해 괄호를 추가할 수 있습니다.
<code class="go">if i := (Item{3, "a"}); i.Id == 3 { }</code>
괄호는 복합 리터럴이 완전한 표현식임을 명확하게 나타내며, 이는 if 문 내의 변수 i에 할당됩니다.
위 내용은 Go에서 구조체 초기화를 위해 언제 괄호를 사용해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!