>백엔드 개발 >Golang >Go에서 문자의 유니코드 값을 얻는 방법은 무엇입니까?

Go에서 문자의 유니코드 값을 얻는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-04 07:36:01603검색

How to Get the Unicode Value of a Character in Go?

JavaScript의 charCodeAt() 메서드와 동일한 Go

JavaScript의 charCodeAt() 메서드는 특정 위치에서 문자의 숫자 유니코드 값을 검색합니다. 예를 들어,

<code class="javascript">"s".charCodeAt(0) // returns 115</code>

Go에서 문자 유형은 int32의 별칭이고 그 자체가 숫자인 rune입니다. 따라서 직접 인쇄하여 숫자형 유니코드 값을 얻을 수 있습니다.

지정된 위치의 문자를 얻으려면 가장 쉬운 방법은 문자열을 []룬으로 변환한 후 인덱스를 사용하는 것입니다. 문자열을 룬으로 변환하는 방법은 유형 변환입니다. []rune("some string"):

<code class="go">fmt.Println([]rune("s")[0])</code>

출력:

115

문자로 인쇄하려면 %를 사용하세요. c 형식 문자 문자열:

<code class="go">fmt.Println([]rune("absdef")[2])      // Also prints 115
fmt.Printf("%c", []rune("absdef")[2]) // Prints s</code>

또한 문자열의 for 범위는 문자열의 룬을 반복하므로 이를 사용할 수도 있습니다. []rune로 변환하는 것과 비교할 때 이 방법이 더 효율적입니다.

<code class="go">i := 0
for _, r := range "absdef" {
    if i == 2 {
        fmt.Println(r)
        break
    }
    i++
}</code>

카운터 i는 별도의 카운터여야 하며 루프 반복 변수가 될 수 없습니다. 범위 반환의 경우 바이트 위치이기 때문입니다. 룬 인덱스가 아닙니다(문자열에 UTF-8 표현의 멀티바이트 문자가 포함된 경우 다릅니다).

은 함수로 래핑됩니다:

<code class="go">func charCodeAt(s string, n int) rune {
    i := 0
    for _, r := range s {
        if i == n {
            return r
        }
        i++
    }
    return 0
}</code>

마지막으로 Go의 문자열은 UTF-8로 인코딩된 텍스트 바이트 시퀀스인 []byte에 저장됩니다(읽기 블로그 자세한 내용은 "Go의 문자열, 바이트, 룬 및 문자" 기사를 참조하세요. 문자열이 127보다 작은 코드의 문자를 사용하도록 보장되면 바이트를 직접 사용할 수 있습니다. 즉, Go에서 문자열을 인덱싱하면 해당 바이트가 인덱싱됩니다. 예를 들어 "s"[0]은 문자 's'의 바이트 값 115입니다.

<code class="go">fmt.Println("s"[0])      // Prints 115
fmt.Println("absdef"[2]) // Prints 115</code>

위 내용은 Go에서 문자의 유니코드 값을 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.