欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > Go语言语法篇---转义字符

Go语言语法篇---转义字符

2025/5/15 11:05:39 来源:https://blog.csdn.net/qq_58662768/article/details/146720127  浏览:    关键词:Go语言语法篇---转义字符

1 转义字符介绍

转义字符(Escape Character) 是一种特殊的字符序列,用于在字符串或代码中表示无法直接输入或显示的特殊字符(如换行、制表符、引号等)。它通常以反斜杠 \ 开头,后跟特定字符或数字组合,表示特定的控制功能或特殊符号。在大部分语言中都有,并不是Go语言独有的机制。

1.1 常见转义字符列表

转义字符说明示例
\n换行(Newline)fmt.Println("Hello\nWorld") → 输出两行
\t水平制表符(Tab)fmt.Println("Name:\tAlice") → Name: Alice
\\反斜杠本身fmt.Println("C:\\Go\\bin") → C:\Go\bin
\"双引号fmt.Println("He said, \"Hi\"") → He said, "Hi"
\'单引号(仅用于 rune 类型)'\'' → 单引号字符
\r回车(Carriage Return)光标回到行首(Windows换行是 \r\n
\b退格(Backspace)删除前一个字符
\f换页(Form Feed)打印机换页,终端可能无效果
\a响铃(Alert/Bell)终端可能发出“叮”声
\v垂直制表符(Vertical Tab)较少使用
\0空字符(Null)字符串结束标志(C风格,Go 较少用)

1.2 Unicode 和 ASCII 转义

Go 支持 Unicode 和 ASCII 转义:

转义方式说明示例
\xHH2位十六进制(ASCII)\x41 → A
\uXXXX4位十六进制(Unicode)\u03A9 → Ω
\UXXXXXXXX8位十六进制(Unicode)\U0001F600 → 😀

代码示例:

package mainimport "fmt"func main() {fmt.Println("A: \x41")          // Afmt.Println("Omega: \u03A9")    // Ωfmt.Println("Smile: \U0001F600") // 😀
}

1.3 原始字符串(Raw String)

Go 支持 原始字符串(Raw String),使用反引号 ` 包裹,不解析转义字符,适合正则、文件路径等场景。

示例:

package mainimport "fmt"func main() {path := `C:\Go\bin\go.exe`  // 无需转义regex := `\d+\.\d+`          // 正则表达式fmt.Println(path)             // C:\Go\bin\go.exefmt.Println(regex)           // \d+\.\d+
}

2 代码事例

package mainimport	"fmt"func main(){fmt.Println("1")fmt.Println("hello\tworld\thello\tworld")fmt.Println("2")fmt.Println("hello\nworld")fmt.Println("3")fmt.Println("hello\rworld")fmt.Println("4")fmt.Println("hello\"world\"")fmt.Println("5")fmt.Println("hello\\world")fmt.Println("6")fmt.Println("A: \x41")     fmt.Println("7")     fmt.Println("Omega: \u03A9")fmt.Println("8")    fmt.Println("Smile: \U0001F600")fmt.Println("9")path := `C:\Go\bin\go.exe`  fmt.Println(path)           fmt.Println("10")regex := `\d+\.\d+`                  fmt.Println(regex)          
}

运行结果:

1、\t是制表符,可自动将打印内容排列整齐。

2、\n是换行符,所以hello和world没有在同一行,这里要注意了,Go语言两个语句之间会默认换行,如果不想使用\n可直接使用两个fmt.Println语句。

3、\r是回车符,过去的计算机是针孔打印式的,换行就是将打印头转移到下一行,可理解现代计算机的光标移动到下一行。回车就是将打印头转移到行开头,可理解为现代计算机的光标移动到第一列。但是目前来说的话,很多\n即可以到下一行也可以到第一列,大家有个基础的认识就好了。

所以这里为什么3输出world呢?因为回车之后world将hello覆盖了。

您可以测试以下代码:fmt.Println("hello1\rworld")   测试结果是world1  因为那个1没有被覆盖掉。

4、\" 输出一个"符号,如果把这里的\去掉,会被认为是几个字符串拼接,会直接输出helloworld。

5、\\输出一个\符号,如果去掉其中一个\的话,会出现报错,或者是后面正好跟着其他的转义字符,运行结果将不是预想的结果。

6、7、8:将HEX值转换为定义的符号。其中\x为ASCII码,\u和\U为Unicode码。

9、10:使用'符号(单引号)为变量赋值,为原始字符串,其中的转义字符全部按\输出,不作为转义字符。

3 课后练习

要求用一个语句输出以下内容。

课后练习答案

package mainimport "fmt"func main() {fmt.Println("姓名\t外号\t户籍\n张三\t北京人\t河北廊坊")
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词