Print、Println、Printf、Sprintf、Fprintf都是golang的fmt包中的公共方法
Print:在控制台输出单一变量。
fmt.Print(variable)
Println:在控制台输出单一变量,并换行。
fmt.Println(variable)
Printf:在控制台输出format过后的字符串。
fmt.Printf("%d", decVar)
Sprintf:返回一个format过后的字符串,并不输出。
s := fmt.Sprintf("a %s", "string")
Fprintf:来格式化并输出到 io.Writers 而不是 os.Stdout。
fmt.Fprintf(os.Stderr, “an %s\n”, “error”)
几种常用的占位符:
%b binary,二进制表示
%c 相应Unicode码点所表示的字符
%d decimal,十进制表示
%e 科学计数法,例如 -1234.456e+78
%E 科学计数法,例如 -1234.456E+78
%f 有小数点而无指数,例如 123.456
%g 根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)输出
%G 根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的0)输出
%o octonary,八进制表示
%q quote,单引号围绕的字符字面值,由Go语法安全地转义
%s 字符串或切片的无解译字节
%T Type,输出值的类型
%t 输出bool值,true or false
%U Unicode格式:U+1234,等同于 "U+%04X"
%v variable,只输出变量的值
%+v 输出变量的KV结构
%#v 相应值的Go语法表示
%x Hexa,十六进制表示,字母形式为小写 a-f
%X Hexa,十六进制表示,字母形式为大写 A-F
%% 输出一个百分号
在Go语言下,%v在打印不同类型的变量时,默认执行的格式:
bool: %t
int, int8 etc.: %d
uint, uint8 etc.: %d, %x if printed with %#v
float32, complex64, etc: %g
string: %s
chan: %p
pointer: %p
对于不同精度的浮点数:
%f: default width, default precision
%9f width 9, default precision
%.2f default width, precision 2
%9.2f width 9, precision 2
%9.f width 9, precision 0
参数显示占位符
func main() {
fmt.Printf("%[2]d, %[1]d\n", 11, 22) //22, 11,先输出第二个值,再输出第一个值
}
TODO: Scanf格式化输出