Slicing in Go: Out of Bounds 오류 방지
슬라이싱을 사용하면 인덱스 범위를 지정하여 기존 슬라이스에서 새 슬라이스를 만들 수 있습니다. . 그러나 지정된 범위가 원본 슬라이스의 경계를 초과하면 범위를 벗어난 오류가 발생할 수 있습니다.
제공된 코드에서 c := b[1:] 줄은 새 슬라이스를 생성하려고 시도합니다. 슬라이스 b에서 슬라이스 c를 선택합니다. 이 오류는 c에 대한 높은 인덱스 경계가 명시적으로 지정되지 않았고 기본값이 b의 길이인 0이기 때문에 발생합니다.
Go에서 슬라이싱의 일반적인 형식은 다음과 같습니다.
subslice := original[start:end]
start를 생략하면 기본값은 0이고, end를 생략하면 기본값은 len(original)이다.
슬라이스의 경우 상위 인덱스 경계 슬라이스의 길이(len())가 아니라 슬라이스의 용량(cap())에 의해 제한됩니다. 즉, cap(original)보다 큰 종료 인덱스를 지정해도 여전히 유효한 것으로 간주됩니다. 그러나 len(original)보다 큰 끝 인덱스를 지정하면 out-of-bounds 오류가 발생합니다.
이 오류를 방지하려면 지정된 범위가 len(original)의 경계를 초과하지 않는지 확인해야 합니다. 원래 조각. 예제 코드에서는 인덱스 상한을 명시적으로 지정하여 문제를 해결할 수 있습니다.
c := b[1:2]
이렇게 하면 인덱스 1의 요소를 포함하는 길이가 1이고 용량이 4인 슬라이스 c가 생성됩니다. b 조각.
위 내용은 Go에서 슬라이싱할 때 범위를 벗어난 오류를 어떻게 방지할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!