Go 문자열의 문자 액세스
이 질문은 Go 문자열 내의 문자에 액세스하는 방법을 탐색하고 문자열의 특성을 슬라이스로 탐구합니다. 바이트 수와 문자, 룬 및 유니코드 코드 포인트 간의 관계.
원본 질문:
"HELLO"[1]에 액세스할 때 숫자 값 69 대신 "E" 문자를 얻으려면 어떻게 해야 합니까?
답변:
문자열에서 문자를 검색하려면 Go의 문자 표현을 이해해야 합니다. 해석된 문자열 리터럴은 UTF-8로 인코딩된 문자 시퀀스로, ASCII 문자는 1바이트만 차지합니다. 따라서 "E" 문자를 얻으려면 다음 변환이 필요합니다.
fmt.Println(string("Hello"[1])) // ASCII only
대안: 룬 사용
유니코드 지원의 경우 유니코드를 나타내는 룬 코드 포인트를 사용할 수 있습니다. 이는 UTF-8 문자열과 호환됩니다:
fmt.Println(string([]rune("Hello, 世界")[1])) // UTF-8
이 코드는 "e" 문자를 출력합니다.
Go의 문자 처리 기능
Go가 문자와 바이트 간 변환 기능을 제공한다는 점은 주목할 가치가 있습니다. 예를 들어, byte(c) 메소드는 문자(룬)를 해당 바이트로 변환하고, rune(b)는 바이트를 문자로 변환합니다.
추가 참고 사항:
위 내용은 숫자 값 대신 Go 문자열의 개별 문자에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!