0
点赞
收藏
分享

微信扫一扫

GO数据类型(二)--字符串

(文章目录)

转义字符

每一个都是一个字符,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,
    1. 输出 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。

image.png

输出函数

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

相关推荐

0 条评论