Go 格式化输入输出

常用的格式化I/O

package main

import (
	"fmt"
	"os"
)

func main() {
	fmt.Print("打印一个值")

	fmt.Printf("\n格式化打印值,可以用占位符,比如%s\n", "我是占位符")

	fmt.Println("带换行的打印", "可以有多个值")

	str := fmt.Sprintf("常用的生成字符串的方法,可以用占位符,比如%d\n", 12)
	fmt.Println("拼接后的字符串:", str)

	fmt.Fprintf(os.Stdout, "可以输出到io,比如控制台,文件等\n")
}

常用占位符

%v	值的默认格式表示
%T	值的类型的Go语法表示
%%	百分号

%t	单词true或false

%b	表示为二进制
%d	表示为十进制
%o	表示为八进制
%q	该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示
%x	表示为十六进制,使用a-f
%X	表示为十六进制,使用A-F

%e	科学计数法,如-1234.456e+78
%E	科学计数法,如-1234.456E+78
%f	有小数部分但无指数部分,如123.456
%F	等价于%f

%s	直接输出字符串或者[]byte

%p	表示为十六进制,并加上前导的0x 

%9f    宽度9,默认精度
%.2f   默认宽度,精度2
%9.2f  宽度9,精度2
%9.f   宽度9,精度0     

详情请查找Go的fmt

定制输出字符串(类似Java的toString方法)

type myInt int

func (m *myInt) String() string {
	return "我是自定义格式的字符串"
}

这样在输出myInt类型的值时,会先尝试调用String()方法