开发者学堂课程【Go 语言核心编程 - 基础语法、数组、切片、Map: Go 的转义字符】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/625/detail/9503
Go 的转义字符
内容介绍
一、GO 语言的转义字符
二、举例说明
三、课堂练习
一、GO 语言的转义字符
常用的主要有以下五个,其中\表示转义
1.Golang 常用的转义字符( escape char )
1) \t:一个制表位,实现对齐的功能
2) \n:换行符
3)\\:一个
4)\”:一个”
5) \r:一个回车 fmt.Println ("天龙八部雪山飞狐\r张飞");
二、举例说明
我们采取每一个章节,一个项目( project )的形式,案例放在子文件夹中。
1) \t的使用
表示一个制表符,通常使用它排版
① 有\
main.go 代码讲解:
package main
import "fmt”
// fmt 表示格式化的包,包中提供格式化,输出,输入的函数
func main() {
//演示转义字符的使用 \ t
fmt.Println("tom\tjack")
//在 tom 和 jack 中加 \t
}
输出结果
tom
jack
② 无\
main.go 代码讲解:
package main
import "fmt”
// fmt 表示格式化的包,包中提供格式化,输出,输入的函数
func main() {
//演示转义字符的使用 \t
fmt.Println("tomtjack")
//将 tom 和 jack 中加 t
}
输出结果:
Tomtjack
③步骤演示:
在命令框中依次输出 dir,cd chapter02,dir 这三个 DOS 命令依次进入目录chapter02 中
再输入 cd escaptechar 、dir 进入目录 escaptechar 可以看见显示的 main.go 文件
输 go run main.go 运行,
显示报错:
忘记保存代码,我们重新保存一遍 。
再次输入 go run main.go 运行,
显示代码中有\时的结果为
tom jack
将代码中的 \t 中\删除,保存后再次运行。
发现就输出一个 t,
结果为 tomt jack
④总结:
\t带上\就表示转义,没有\就仅表示一个字母t
2) \n: 换行符
main.go 代码讲解:
package main
import "fmt”
// fmt 表示格式化的包,包中提供格式化,输出,输入的函数
func main() {
//演示转义字符的使用 \t
fmt.Println("tomtjack")
fmt.Println( "hello\nworld")
\\ \ n 表示换行输出
}
输出结果
tom
jack
hello
world
3)\\:一个\
main.go 代码讲解:
package main
import "fmt”
// fmt 表示格式化的包,包中提供格式化,输出,输入的函数
func main() {
//演示转义字符的使用 \t
fmt.Println("tomtjack")
fmt.Println( "hello\nworld")
// \n 表示换行输出
//第一个\为转义字符,第二个\为要输出的地址分割符
fmt.Println("c: \\users\\Administrator\\Desktop\\Go 语言核心编程课程\\资料")
}
输出结果
tom
jack
hello
world
c: \users\Administrator\Desktop\Go语言核心编程课程\资料
错误说明:
当输出一串地址时,常含有\符号,
但输入 fmt.Println("c: \users\Administrator\Desktop\Go语言核心编程课程\资料")
时会 \ 符号旁会显示报错。
运行后,显示一个\无法表达任何含义,所以因在将\变为\\,意为输出一个\,第一个\为转义字符,第二个\为要输出的地址分割符。
总结
所以,当要输出内容包含\符号时,不可仅仅只有\需将其改为\\才可成功输出\符号。
4)\”:一个”
main.go 代码讲解:
package main
import "fmt”
// fmt 表示格式化的包,包中提供格式化,输出,输入的函数
func main() {
//演示转义字符的使用 \t
fmt.Println("tomtjack")
fmt.Println( "hello\nworld")
// \n 表示换行输出
//第一个\为转义字符,第二个\为要输出的地址分割符
fmt.Println("c: \\users\\Administrator\\Desktop\\Go语言核心编程课程\\资料")
//有时我们希望输出的语句带有”,如 tom 说 "i love you”
fmt.Println( "tom说\"i love you\"")
}
输出结果
tom
jack
hello
world
c: \users\Administrator\Desktop\Go语言核心编程课程\资料
tom 说 "i love you”
错误说明
有时我们希望输出的语句带有”,如 tom 说 "i love you”,但代码若为fmt.Println( "tom说"i love you"")
必然会显示报错。
我们应该照常使用 \转义字符,输出”符号,将希望输出”的地方改为\”
5)\r: 一个回车
fmt.Println("天龙八部雪山飞狐\r张飞");
main.go 代码讲解:
package main
import "fmt”
// fmt 表示格式化的包,包中提供格式化,输出,输入的函数
func main() {
//演示转义字符的使用 \ t
fmt.Println("tomtjack")
fmt.Println( "hello\nworld")
// \n 表示换行输出
fmt.Println("c: \\users\\Administrator\\Desktop\\Go语言核心编程课程\\资料")
fmt.Println( "tom说\"i love you\"")
// \r 回车 ,从当前行的最前面开始输出,覆盖掉以前内容
fmt.Println("天龙八部雪山飞狐\r张飞")
//运行结果为张飞八部雪山飞狐,回车表示先输出前面的内容
然后回车之后不换行,再把张飞输出在天龙八部雪山飞狐的前面,同时覆盖前面内容-张飞,表示从当前行的最前面开始输出,覆盖掉以前内容,所以张飞就会替换掉原来的天龙,输出-张飞八部雪山飞狐
fmt.Println("天龙八部雪山飞狐\r张飞厉害")
//而变成张飞厉害,结果就是张飞厉害雪山飞狐
}
输出结果
tom
jack
hello
world
c: \users\Administrator\Desktop\Go 语言核心编程课程\资料
tom 说 "i love you”
张飞八部雪山飞狐
张飞厉害雪山飞狐
三、课堂练习
要求:请使用一句输出语句,达到输入如下图形效果
在 escaptechar 包中新建一个 exec01,
代码如下:
答案讲解
package main
import "fmt"
// fmt 包中提供格式化,输出,输入的函数
func main(){
//要求:请使用一句输出语句,达到输入如下图形的效果
fmt.Println("姓名\t年龄\t籍贯\t地址\njohn\t20\t河北\t北京")
}
错误提示讲解:
在一个包中有两个 main 函数时,会提示重复定义
将鼠标移至错误处,显示两个 main 冲突,遇到重复定义的问题,通常重建一个包,但 Go 语言规定,main 函数重复定义,只可新建一个文件夹,好比 Java 中的同一个包的重名问题。当出现重复定义时,会显示报错
解决方案:
重建一个 pkgexec 文件夹(左图),再将 exec01 包移到新建的文件夹中,如右图,此时就不会再报错。如果依然出错,可能是编译器还未反应,停留在上个错误。只需将数据任意改动一下即可。
运行
在命令框输入依次输入 dir,cd pkgexec 进入 pkgexec 目录
依次输入 dir,pkgexec 找到 exec01,执行 dos 的运行语句,
go run exec01.go,输出最后结果。