Go 할당에서 실패한 유형 추론
Go의 유형 추론 메커니즘은 일반적으로 간결한 할당 문을 허용합니다. 그러나 일부 할당에서는 예상대로 유형을 추론하지 못할 수 있습니다.
다음 예를 고려하세요.
i := 10 next := 11 prev, i := i, next
이 스니펫은 변수 유형을 올바르게 추론하고 그에 따라 할당합니다.
그러나 구조체 필드와 관련된 유사한 할당에서는 유형 추론이 발생할 수 있습니다. 문제:
type Foo struct { Bar int } f := Foo{10} next := 11 prev, f.Bar := f.Bar, next
이 경우 컴파일러는 ":=의 왼쪽에 이름이 없음"이라는 오류를 보고합니다.
이 차이가 발생하는 이유는 첫 번째 예에서 에서 할당의 왼쪽은 변수 이름이고 두 번째 예에서는 구조체 필드입니다. Go의 유형 추론 엔진은 오른쪽의 유형을 추론하기 위해 왼쪽에 명명된 변수가 필요합니다.
이 문제는 Go 문제 6842로 인정됩니다. 버그가 아니라 제한 사항으로 간주됩니다. 현재 유형 추론 구현의 모습입니다.
위 내용은 구조체 필드 할당에 대해 Go의 유형 추론이 실패하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!