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 转义:

转义方式 说明 示例
\xHH 2位十六进制(ASCII) \x41 → A
\uXXXX 4位十六进制(Unicode) \u03A9 → Ω
\UXXXXXXXX 8位十六进制(Unicode) \U0001F600 → 

代码示例:

package main

import "fmt"

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

1.3 原始字符串(Raw String)

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

示例:

package main

import "fmt"

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

2 代码事例

package main

import	"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)          
}

运行结果:
Go语言语法篇---转义字符_第1张图片

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 课后练习

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

Go语言语法篇---转义字符_第2张图片

课后练习答案

package main

import "fmt"

func main() {

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

你可能感兴趣的:(GO语言学习笔记,golang,开发语言)