当前位置: 首页 > news >正文

Golang 字符串字面量表示方法

文章目录

  • 1.普通字符串字面量(Double-Quoted String Literals)
  • 2.原始字符串字面量(Raw String Literals)
  • 3.字节字符串字面量(Byte Slice Literals)
  • 4.码值表示字符串字面量
    • Unicode 转义序列
    • UTF8 转义序列
      • 十六进制序列
      • 八进制序列
  • 5.小结
  • 参考文献

在 Go 语言中,字符串字面量可以通过不同的方式来表示。主要有三种形式:

1.普通字符串字面量(Double-Quoted String Literals)

使用双引号 " 包围的字符串。

这种形式允许转义字符,例如 \n(换行)、\t(制表符)等。

str := "Hello, World!\nThis is a new line."
fmt.Println(str)

运行输出:

Hello, World!
This is a new line.

2.原始字符串字面量(Raw String Literals)

使用反引号 ` 包围的字符串。

原始字符串字面量不处理转义字符,所有的字符,包括换行和反斜杠,都会被原样保留。这对于需要包含多行文本或特殊字符的情况非常有用。

rawStr := `Hello, World!
This is a raw string literal. It can span multiple lines.
Special characters like \n and \t are not processed.`
fmt.Println(rawStr)

运行输出:

Hello, World!
This is a raw string literal. It can span multiple lines.
Special characters like \n and \t are not processed.

3.字节字符串字面量(Byte Slice Literals)

使用 []byte 关键字来表示字节数组。

这种形式通常用于处理原始字节数据,可以使用普通字符串字面量或原始字符串字面量来初始化。

byteStr := []byte("Hello, World!") // 普通字符串字面量
fmt.Println(string(byteStr))byteRawStr := []byte(`Hello, World!
This is a raw byte string.`) // 原始字符串字面量
fmt.Println(string(byteRawStr))

运行输出:

Hello, World!
Hello, World!
This is a raw byte string.

4.码值表示字符串字面量

Unicode 转义序列

在 Go 语言中,可以使用 Unicode 码值来书写字符串字面量。

Unicode 码值使用 \u 或 \U 转义序列表示。

  • \u 形式:后面跟四个十六进制数字,表示一个 Unicode 字符。
  • \U 形式:后面跟八个十六进制数字,表示一个 Unicode 字符。
// 使用 Unicode 转义序列表示字符串
str1 := "\u4F60\u597D" // 你好
fmt.Println(str1)str2 := "\U00004E16\U0000754C" // 世界
fmt.Println(str2)

运行输出:

你好
世界

UTF8 转义序列

十六进制序列

在 Go 语言中,UTF-8 字符也可以使用 \x 来表示,这是另一种转义序列形式,专门用于表示字节的十六进制值。

使用 \x 表示法时,后面可以跟随两个十六进制数字,表示一个字节的值,这在处理原始字节数据时非常有用。

\xe4、\xbd 和 \xa0 组合起来表示汉字“你”。
\xe5、\xa5 和 \xbd 组合起来表示汉字“好”。
\xe4、\xb8 和 \x96 组合起来表示汉字“世”。
\xe7、\x95 和 \x8c 组合起来表示汉字“界”。

str1 := "\xe4\xbd\xa0\xe5\xa5\xbd" // 你好
fmt.Println(str1)str2 := "\xe4\xb8\x96\xe7\x95\x8c" // 世界
fmt.Println(str2)

运行输出:

你好
世界

八进制序列

UTF-8 字符也可以使用 \ 之后跟随三个八进制数字字符(0-7)表示一个 byte 值。

\344\275\240 组合起来表示汉字“你”。
\345\245\275 组合起来表示汉字“好”。
\344\270\226 组合起来表示汉字“世”。
\347\225\214 组合起来表示汉字“界”。

str1 := "\344\275\240\345\245\275" // 你好
fmt.Println(str1)str2 := "\344\270\226\347\225\214" // 世界
fmt.Println(str2)

运行输出:

你好
世界

5.小结

在 Go 语言中,字符串字面量可以通过多种方式表示,每种方式都有其特定的用途和特点。

如果使用字符的码值来表示字符串,那么可以Unicode 转义序列和 UTF8 转义序列。

**注意:**使用 rune 类型的零值常用 ‘\000’、‘\x00’或’\u0000’ 等来表示。


参考文献

String literals - The Go Programming Language Specification
基本类型和它们的字面量表示 - Go语言101

http://www.lryc.cn/news/498335.html

相关文章:

  • 03_Webpack模块打包工具
  • 【目标跟踪】AntiUAV600数据集详细介绍
  • 十、JavaScript的应用的习题
  • 【Spring】AOP
  • 三维地图,智慧城市,商业智能BI,数据可视化大屏(Cesiumjs/UE)
  • 鸿蒙Next通过oss上传照片到阿里云
  • 小白爬虫——selenium入门超详细教程
  • nlp培训重点
  • 什么是多模态和模态
  • apache中的Worker 和 Prefork 之间的区别是什么?
  • 系统监控——分布式链路追踪系统
  • 【Python]深入Python日志管理:从logging到分布式日志追踪的完整指南
  • DHCP Client的工作方式
  • docker-常用应用部署dockerfile模板
  • Unity3D学习FPS游戏(13)玩家血量控制
  • TDesign:Switch开关
  • AI在SEO中的应用与关键词优化探讨
  • [docker中首次配置git环境与时间同步问题]
  • 使用lumerical脚本语言创建绘制波导并进行数据分析(纯代码实现)(1)
  • redis.conf
  • 泷羽sec学习打卡-shell命令8
  • 割草机器人架构设计和技术应用
  • 基于SSM闪光点映像摄影工作室预约系统JAVA|VUE|Springboot计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解
  • Windows 和 Linux 系统命令行操作详解:从文件管理到进程监控
  • 【Calibre-Web】Calibre-Web服务器安装详细步骤(个人搭建自用的电子书网站,docker-compose安装)
  • 服务器数据恢复—服务器raid0阵列硬盘指示灯显示黄颜色的数据恢复案例
  • .nii.gz文件读取方式
  • Kube-Prometheus-Stack安装时初始化导入自定义Grafana dashboards
  • 【SNIP】《An Analysis of Scale Invariance in Object Detection – SNIP》
  • JAVA基础学习笔记_异常