(文章目录)
转义字符
每一个都是一个字符,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