2013年10月23日 Go生态洞察:字符串、字节、符文和字符


博主猫头虎()带您 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生态,共同成长。

你可能感兴趣的:(#,Go生态洞察,Golang技术专区,golang,开发语言,后端)