Go에서 룬을 문자열로 변환
Go에서 유니코드 문자로 작업할 때 룬( 유니코드 문자를 나타내는 정수)를 문자열로 변환합니다. Go는 이 작업에 대해 여러 가지 접근 방식을 제공하므로 혼란스러울 수 있습니다.
Scanner.Scan() 사용(잘못됨)
제공된 코드에서 попытаться를 사용하려면 Scanner.Scan()은 룬을 문자열로 변환합니다. 그러나 Scanner.Scan()은 어휘 분석을 위한 것이며 룬 문자를 직접 반환하지 않기 때문에 이 접근 방식은 올바르지 않습니다. 대신, 토큰 유형(예: scanner.Ident 또는 scanner.Int)을 나타내는 상수를 반환합니다.
Scanner.Next() 사용(올바른)
룬을 문자열로 올바르게 변환하려면 대신 Scanner.Next()를 사용해야 합니다. 이 함수는 입력에서 다음 룬을 읽고 이를 정수로 반환합니다. 그런 다음 strconv.QuoteRune() 함수를 사용하여 룬을 문자열로 변환할 수 있습니다.
var b scanner.Scanner const a = `a` b.Init(strings.NewReader(a)) c := b.Next() fmt.Println(strconv.QuoteRune(c)) // Output: "'a'"
룬을 문자열로 직접 변환
간단히 원하는 경우 단일 룬을 문자열로 변환하려면 유형 변환을 사용할 수 있습니다. Rune은 int32의 별칭이며 Go는 내장된 string() 함수를 사용하여 정수 값을 문자열로 변환하는 것을 지원합니다.
r := rune('a') fmt.Println(string(r)) // Output: "a"
Looping Over Runes
To 문자열의 룬을 반복하려면 for ... 범위 구성을 사용할 수 있습니다. 이 기술은 문자열의 각 문자에 대한 인덱스와 룬 값을 모두 반환합니다.
for i, r := range "abc" { fmt.Printf("%d - %c (%v)\n", i, r, r) } // Output: // 0 - a (97) // 1 - b (98) // 2 - c (99)
대체 방법
룬을 문자열로 변환하는 다른 방법은 다음과 같습니다.
위 내용은 Go에서 룬을 문자열로 어떻게 변환하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!