小言_互联网的博客

go语言学习笔记fmt标准化格式输出

374人阅读  评论(0)
package main

import "fmt"

type Point struct {
	x, y int
}

func main() {
	// 一般情况下
	var x int = 5
	fmt.Printf("%v\n", x)  // 相应值的默认格式 5
	fmt.Printf("%#v\n", x) // 相应值的Go语法表示 5
	fmt.Printf("%T\n", x)  // 相应值的类型的Go语法表示

	p1 := Point{3, 5}
	fmt.Printf("%v\n", p1)  // 相应值的默认格式 {3,5}
	fmt.Printf("%+v\n", p1) // 在打印结构体时,“加号”标记(%+v)会添加字段名 {x:3 y:5}
	fmt.Printf("%#v\n", p1) // 相应值的Go语法表示
	fmt.Printf("%T\n", p1)  // 相应值的类型的Go语法表示

	// bool
	const a, b bool = true, false
	fmt.Printf("%t\n", a) // 单词 true 或 false。
	fmt.Printf("%t\n", b)

	// 整数
	var c, d, e int = 1, 12, 45
	fmt.Printf("%b %c %d %o %q %x %X %U\n", c, c, c, c, c, c, c, c) //1  1 1 '\x01' 1 1 U+0001
	fmt.Printf("%b %c %d %o %q %x %X %U\n", d, d, d, d, d, d, d, d) //1100  12 14 '\f' c C U+000C
	fmt.Printf("%b %c %d %o %q %x %X %U\n", e, e, e, e, e, e, e, e) //101101 - 45 55 '-' 2d 2D U+002D
	// %b	二进制表示
	// %c	相应Unicode码点所表示的字符
	// %d	十进制表示
	// %o	八进制表示
	// %q	单引号围绕的字符字面值,由Go语法安全地转义
	// %x	十六进制表示,字母形式为小写 a-f
	// %X	十六进制表示,字母形式为大写 A-F
	// %U	Unicode格式:U+1234,等同于 "U+%04X"

	// 浮点数及其复合构成:
	var f, g float32 = 3.14123, 00000.1111122200
	fmt.Printf("%b %e %E %f %g %G \n", f, f, f, f, f, f)
	// 13175274p-22 3.141230e+00 3.141230E+00 3.141230 3.14123 3.14123
	fmt.Printf("%b %e %E %f %g %G \n", g, g, g, g, g, g)
	// 14913230p-27 1.111122e-01 1.111122E-01 0.111112 0.11111222 0.11111222
	// %b	无小数部分的,指数为二的幂的科学计数法,与 strconv.FormatFloat 的 'b' 转换格式一致。例如 -123456p-78
	// %e	科学计数法,例如 -1234.456e+78
	// %E	科学计数法,例如 -1234.456E+78
	// %f	有小数点而无指数,例如 123.456
	// %g	根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)输出
	// %G	根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的0)输出

	//字符串与字节切片:
	S := "hello world"
	S1 := "h"
	fmt.Printf("%s\n", S)  // hello world
	fmt.Printf("%q\n", S)  // "hello world"
	fmt.Printf("%x\n", S)  // 68656c6c6f20776f726c64
	fmt.Printf("%X\n", S)  // 68656C6C6F20776F726C64
	fmt.Printf("%s\n", S1) // h
	fmt.Printf("%q\n", S1) // "h"
	fmt.Printf("%x\n", S1) // 68
	fmt.Printf("%X\n", S1) // 68

	// 指针
	k := 100
	var p *int
	fmt.Printf("%p\n", p) //0x0
	p = &k
	fmt.Printf("%\n", &k)//0xc00000a258
	fmt.Printf("%p\n", p)//0xc00000a258
	fmt.Printf("%p\n", &p)//0xc000006030
}


转载:https://blog.csdn.net/weixin_44500897/article/details/101459882
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场