gpt4 book ai didi

string - 如何在 Go 中将新字符分配给字符串?

转载 作者:IT王子 更新时间:2023-10-29 02:25:15 24 4
gpt4 key购买 nike

我正在尝试更改 Go 中的现有字符串,但我不断收到此错误“无法分配给 new_str[i]”

package main
import "fmt"

func ToUpper(str string) string {
new_str := str
for i:=0; i<len(str); i++{
if str[i]>='a' && str[i]<='z'{
chr:=uint8(rune(str[i])-'a'+'A')
new_str[i]=chr
}
}
return new_str
}

func main() {
fmt.Println(ToUpper("cdsrgGDH7865fxgh"))
}

这是我的代码,我希望将小写字母更改为大写字母,但我无法更改字符串。为什么?我怎样才能改变它?

P.S 我只想使用 fmt 包!

提前致谢。

最佳答案

你不能……它们是不可变的。来自Golang Language Specification :

Strings are immutable: once created, it is impossible to change the contents of a string.

但是,您可以将其转换为 []byte slice 并对其进行更改:

func ToUpper(str string) string {
new_str := []byte(str)
for i := 0; i < len(str); i++ {
if str[i] >= 'a' && str[i] <= 'z' {
chr := uint8(rune(str[i]) - 'a' + 'A')
new_str[i] = chr
}
}
return string(new_str)
}

工作样本:http://play.golang.org/p/uZ_Gui7cYl

关于string - 如何在 Go 中将新字符分配给字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26767255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com