首页 > 后端开发 > Golang > 正文

如果 Go 中的字符串是不可变的,我该如何修改它?

DDD
发布: 2024-10-26 12:38:29
原创
943 人浏览过

How Can I Modify a String in Go If It's Immutable?

Go 中的字符串更改:解决“无法分配给字符串”错误

Go 字符串是不可变的,这意味着它们不能直接修改一次创建的。当尝试更改字符串的内容时,此限制通常会引发错误“无法分配给 new_str[i]”。为了克服这一挑战并修改字符串,需要一种替代方法。

一种解决方案是将字符串转换为字节切片,它可以像数组一样进行更改。该技术允许替换字符串中的字符。以下代码演示了这种方法:

<code class="go">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)
}</code>
登录后复制

在此代码中,字符串 str 被转换为字节切片 new_str。然后迭代字节切片,将每个字节与 ASCII 小写字符范围进行比较。如果遇到小写字节,则将其替换为其等效的大写 ASCII。最后,修改后的字节切片被转换回字符串并返回。

这种方法可以在 Go 中更改字符串,同时保持其不变性。它提供了一种灵活有效的方法来在各种上下文中操作字符串。

以上是如果 Go 中的字符串是不可变的,我该如何修改它?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!