/*
go字符串格式化
go对字符串格式化提供了良好支持
*/
package main
import (
"fmt"
"os"
)
type point struct {
x, y int
}
func main() {
/*
go提供了几种打印格式用来格式化一般的go
下面的%v打印了一个point结构体的对象的值
*/
p := point{1, 2}
fmt.Printf("%v\n", p)
/*
如果所格式化的值是一个结构体对象 那么 %+v
的格式化输出将包括结构体的成员名称和值
*/
fmt.Printf("%+v\n", p)
//使用%T来输出一个值的数据类型
fmt.Printf("%T\n", p)
//格式化bool型变量
fmt.Printf("%t\n", true)
/*
有很多种方式格式化整形 %d十进制打印
*/
fmt.Printf("%d\n", 123)
//%b 输出整形的二进制表示方式
fmt.Printf("%b\n", 14)
//%c 打印该数值对应的字符
fmt.Printf("%c\n", 22)
//%x输出十六进制表示
fmt.Printf("%x\n", 456)
//%f 浮点数
fmt.Printf("%f\n", 4.1)
//%e %E科学计数法来输出整形
//%s 输出基本的字符串
fmt.Printf("%s", "ss")
//%q 输出带有双引号的字符串
//%p 输出一个指针
fmt.Printf("%p\n", &p)
//%6d %6d
//%6.2f 宽度和精度
//为了使用左对齐你可以在宽度之前加上 - 号
//Sprintf来将格式化后的字符串赋值给一个变量
s := fmt.Sprintf("%s", "string")
fmt.Println(s)
//你也可以使用Fprintf来将格式化后的值输出到io.Writers
fmt.Fprintf(os.Stderr, "%s", "error")
}