🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁
🦄 博客首页——🐅🐾猫头虎的博客🎐
🐳 《面试题大全专栏》 🦕 文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺
🌊 《IDEA开发秘籍专栏》 🐾 学会IDEA常用操作,工作效率翻倍~💐
🌊 《100天精通Golang(基础入门篇)》 🐅 学会Golang语言,畅玩云原生,走遍大小厂~💐
🐅🐾猫头虎建议Go程序员必备技术栈一览表📖:
☁️🐳
Go语言开发者必备技术栈☸️
:
🐹 GoLang | 🌿 Git | 🐳 Docker | ☸️ Kubernetes | 🔧 CI/CD | ✅ Testing | 💾 SQL/NoSQL | 📡 gRPC | ☁️ Cloud | 📊 Prometheus | 📚 ELK Stack
🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🐅🐾🍁🐥
文章目录
- 🐅🐾猫头虎建议Go程序员必备技术栈一览表📖:
- 2013年10月23日 Go生态洞察:字符串、字节、符文和字符
- 🐯 摘要
- 📚 引言
- 📝 正文内容
- 📘 字符串是什么?
- 📃 打印字符串
- 🌍 UTF-8和字符串字面量
- 🧩 代码点、字符和符文
- 🔄 范围循环
- 📚 库
- 📊 知识点总结
- 🔄 总结
- 🔮 下一篇预告
- 原创声明
-
原创作者: 猫头虎
-
作者wx: Libin9iOak
-
作者公众号: 猫头虎技术团队
2013年10月23日 Go生态洞察:字符串、字节、符文和字符
🐯 摘要
大家好,我是猫头虎,今天我们要聊的是Go语言中的一个看似简单,却隐藏着丰富内涵的话题:字符串、字节、符文和字符。在这篇博客中,我们将深入探讨Go中的字符串是如何工作的,以及它们与字节、字符、符文的关系。准备好跟我一起深入Go的世界了吗?🚀
📚 引言
在上一篇博客中,我们了解了Go中切片的工作原理。今天,我们将在这个基础上,进一步探讨Go中的字符串。字符串看似简单,但要正确使用它们,需要理解字节、字符、符文之间的差异,以及Unicode和UTF-8、字符串与字符串字面量等概念的区别。
📝 正文内容
📘 字符串是什么?
在Go中,字符串实质上是只读的字节切片。它们可以包含任意字节,而不限于Unicode或UTF-8文本。例如,下面这个字符串字面量:
const sample = "\xbd\xb2\x3d\xbc\x20\xe2\x8c\x98"
📃 打印字符串
由于sample
中包含非ASCII和非UTF-8的字节,直接打印会产生乱码。但我们可以通过循环和格式化输出来分析字符串的真实内容。例如:
for i := 0; i < len(sample); i++ {
fmt.Printf("%x ", sample[i])
}
🌍 UTF-8和字符串字面量
Go中的字符串是一串字节。当我们存储字符时,实际上存储的是它的字节表示。例如:
const placeOfInterest = `⌘`
这个例子展示了Unicode字符U+2318(即“⌘”)是如何通过UTF-8字节e2 8c 98
来表示的。
🧩 代码点、字符和符文
在Go中,Unicode的“代码点”被称为“符文”(rune)。Go使用int32
类型的别名rune
来表示代码点。例如:
'⌘'
🔄 范围循环
当使用for range
循环遍历字符串时,Go会对UTF-8编码的符文进行解码。例如:
const nihongo = "日本語"
for index, runeValue := range nihongo {
fmt.Printf("%#U starts at byte position %d\n", runeValue, index)
}
📚 库
Go的标准库提供了强大的UTF-8文本解释支持。例如,unicode/utf8
包提供了一系列用于处理UTF-8字符串的函数。
📊 知识点总结
概念 | 描述 |
---|---|
字符串 | Go中的字符串是只读的字节切片 |
字符串与字节 | 字符串可以包含任意字节,不一定是有效的UTF-8序列 |
UTF-8与字符串字面量 | 字符串字面量(除非包含特殊转义序列)总是有效的UTF-8序列 |
符文 | Go中的符文(rune)表示Unicode代码点 |
字符串的遍历 | 使用for range 循环遍历字符串时,Go会对UTF-8编码的符文进行解码 |
🔄 总结
今天我们探讨了Go中字符串的内部工作原理,理解了字符串、字节、符文和字符之间的区别。尽管Go字符串
可以包含任意字节,但UTF-8编码在其设计中占据了核心地位。希望这篇文章能帮助你更好地理解Go字符串的行为。本文已被猫头虎的Go生态洞察专栏收录,详情点击这里。
🔮 下一篇预告
下一篇文章,我们将探讨“Go语言四年回顾”,回顾Go自发布以来的发展历程和它所带来的影响。敬请期待!🌟
原创声明
======= ·
-
原创作者: 猫头虎
-
作者wx: Libin9iOak
-
作者公众号: 猫头虎技术团队
学习 | 复习 | Go生态 |
---|---|---|
✔ | ✔ | ✔ |
本文为原创文章,版权归作者所有。未经许可,禁止转载、复制或引用。
作者保证信息真实可靠,但不对准确性和完整性承担责任。
未经许可,禁止商业用途。
如有疑问或建议,请联系作者。
感谢您的支持与尊重。
点击
下方名片
,加入IT技术核心学习团队。一起探索科技的未来,洞察Go生态,共同成长。