go의 unsafe.SliceData 함수 문서에는 다음과 같이 나와 있습니다.
으아아아&slice[0]
대신 &slice[:1][0]
을 반환하는 논리는 무엇인가요? 내가 아는 한(그리고 내 테스트에서 확인한 바에 따르면) 둘 다 동일한 주소를 반환합니다. Go 개발자가 후자 대신 전자를 선택하는 특별한 이유가 있나요? &slice[:1][0]
而不是 &slice[0]
背后的逻辑是什么?据我所知(并且我的测试证实),两者都会返回相同的地址。 Go 开发者选择使用前者而不是后者有什么具体原因吗?
切片可能具有正容量(cap(slice) > 0
),但同时可能具有 0
长度。像 slice[0]
slice[:1]
那样对其进行切片,这将产生长度为 1
的切片,并且您可以像 result[0]
슬라이스의 용량은 양수(cap(slice) > 0
)일 수 있지만 동시에 0 코드> 길이. slice[0]
처럼 인덱싱하면 런타임 패닉이 발생합니다.
슬라이스의 용량이 양수이면 런타임 패닉을 일으키지 않고
와 같은 결과를 인덱싱할 수 있습니다.예:
으아아아
결과는 다음과 같습니다. 🎜 으아아아 🎜그러나 이것은 작동합니다: 🎜 으아아아위 내용은 Go의 슬라이싱과 슬라이싱의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!