(文章目录)
转义字符
每一个都是一个字符,rune类型(int32)。可以作为单独字符使用,也可以作为字符串中的一个字符。
\a   U+0007 alert or bell
\b   U+0008 backspace
\f   U+000C form feed
\n   U+000A line feed or newline
\r   U+000D carriage return
\t   U+0009 horizontal tab
\v   U+000B vertical tab
\\   U+005C backslash
\'   U+0027 single quote (valid escape only within rune literals)
\"   U+0022 double quote (valid escape only within string literals)
字符串
使用双引号或反引号引起来的任意个字符。它是字面常量。
"abc测试" // 不能换行,换行需要借助\n
"abc\n测试" // 换行
`abc
 测试` // 等价下面的字符串
"abc\n\t测试"
`json:"name"` // 字符串里面如果有双引号,使用反引号定义方便
"json:\"name\"" // 和上一行等价
"abc" + "xyz" // 拼接
==注意:==反引号内不支持转义字符
格式化
- %v 适合所有类型数据,调用数据的缺省打印格式
 - %+v对于结构体,会多打印出字段名
 - %#v 对于结构体,有更加详细的输出
 - %T 打印值的类型
 - %% 打印百分号本身
 - 整数
- %b 二进制;%o 八进制;%O 八进制带0o前缀;%x 十六进制小写;%X16 进制大写
 - %U 把一个整数用Unicode格式打印。例如 fmt.Printf("%U, %x, %c\n", 27979, 27979,
 
- 输出 U+6D4B, 6d4b, 测
 
- %c 把rune、byte的整型值用字符形式打印
 - %q 把一个整型当做Unicode字符输出,类似%c,不过在字符外面多了单引号。q的意思就是quote
 
 - 浮点数
- %e、%E 科学计数法
 - %f、%F 小数表示法,最常用
 - %g 内部选择使用%e还是%f以简洁输出;%G 选择%E或%F
 
 - 字符串或字节切片
- %s 字符串输出。如果是rune切片,需要string强制类型转换
 - %q 类似%s,外部加上双引号。q的意思就是quote
 
 - 指针
- %p 十六进制地址
 
 
| 类型 | 说明 | 缺省格式符 | 常用格式符 | 
|---|---|---|---|
| bool | 布尔型 | %t | %t | 
| int/int8/int16/int32/int64/ | 整型 | %d | %d、%b、%x | 
| unit/unit8/uint16/uint32/uint64 | 无符号整型 | %d, | 如果使用%#v就等同%#x、%d、%b、%x | 
| float32/float64 | 浮点型 | %g | %f、%e | 
| complex64/complex128 | 复数 | %g | |
| byte | 字节型 | %c | %c、%d | 
| rune | 字符型 | %c | %c、%d | 
| string/[]byte | 字符串 | %s | %s | 
| uintptr | 指针 | %p | %p | 
| map slice channel error | 引用 | %v | |
| slice | 索引0元素地址 | %p | 
特殊格式符写法
a, b, c, d := 100, 200, 300, 400
fmt.Printf("%d, %[2]v, %[1]d, %d", a, b, c, d)
可以认为中括号内写的是索引,是 Printf 的索引,索引0是格式字符串本身,1开始才是参数。如果写了 [n],之后默认就是n+1。

输出函数
- 输出到标准输出
- Print:使用缺省格式输出,空格分割
 - Println:使用缺省格式输出,空格分割,最后追加换行
 - Printf:按照指定的格式符输出
 
 - 输出到字符串,经常用来拼接字符串用
- Sprint:相当于Print,不过输出为string
 - Sprintln:相当于Println,不过输出为string
 - Sprintf:相当于Printf,不过输出为string

 
 










