Go에서 문자열은 변경할 수 없습니다. 즉, 일단 생성되면 내용을 수정할 수 없습니다. 이는 다음 오류에서 분명하게 드러납니다. "new_str[i]에 할당할 수 없습니다".
문자열의 내용을 변경하려면 먼저 해당 문자열을 []바이트 슬라이스로 캐스팅해야 합니다. 문자열과 달리 바이트 슬라이스는 실제로 변경 가능합니다. 그런 다음 바이트 슬라이스에서 원하는 수정을 수행하고 string(...) 함수를 사용하여 이를 문자열로 다시 캐스팅할 수 있습니다.
다음은 바이트 슬라이스를 사용하여 소문자를 다음과 같이 변경하는 수정된 코드 버전입니다. 대문자:
<code class="go">func ToUpper(str string) string { bytes := []byte(str) for i := 0; i < len(str); i++ { if bytes[i] >= 'a' && bytes[i] <= 'z' { chr := uint8(rune(bytes[i]) - 'a' + 'A') bytes[i] = chr } } return string(bytes) }</code>
이제 ToUpper("cdsrgGDH7865fxgh")를 호출하면 모든 소문자를 대문자로 올바르게 변환합니다.
위 내용은 ## 왜 Go에서 문자열을 수정할 수 없나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!