> 백엔드 개발 > Golang > 구조체 필드 할당에 대해 Go의 유형 추론이 실패하는 이유는 무엇입니까?

구조체 필드 할당에 대해 Go의 유형 추론이 실패하는 이유는 무엇입니까?

Barbara Streisand
풀어 주다: 2024-12-28 17:29:30
원래의
632명이 탐색했습니다.

Why Does Go's Type Inference Fail for Struct Field Assignments?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿