小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
fmt
fmt包实现了类似C语言printf和scanf的格式化I/O。格式化verb('verb')源自C语言但更简单。
详见官网fmt的API:golang.google.cn/pkg/fmt/
导入包
import "fmt"
常用打印函数
打印:
func Print(a ...interface{}) (n int, err error)
格式化打印:
func Printf(format string, a ...interface{}) (n int, err error)
打印后换行
func Println(a ...interface{}) (n int, err error)
格式化打印中的常用占位符:
格式化打印占位符:
%v,原样输出
%T,打印类型
%t,bool类型
%s,字符串
%f,浮点
%d,10进制的整数
%b,2进制的整数
%o,8进制
%x,%X,16进制
%x:0-9,a-f
%X:0-9,A-F
%c,打印字符
%p,打印地址
示例代码:
package main
import (
"fmt"
)
func main() {
a := 100 //int
b := 3.14 //float64
c := true // bool
d := "Hello World" //string
e := `Ruby` //string
f := 'A'
fmt.Printf("%T,%b\n", a, a)
fmt.Printf("%T,%f\n", b, b)
fmt.Printf("%T,%t\n", c, c)
fmt.Printf("%T,%s\n", d, d)
fmt.Printf("%T,%s\n", e, e)
fmt.Printf("%T,%d,%c\n", f, f, f)
fmt.Println("-----------------------")
fmt.Printf("%v\n", a)
fmt.Printf("%v\n", b)
fmt.Printf("%v\n", c)
fmt.Printf("%v\n", d)
fmt.Printf("%v\n", e)
fmt.Printf("%v\n", f)
}
运行结果:
其它常用方法
fmt包中其它常见方法总结:
| 语法 | 含义 |
|---|---|
| fmt.Errorf(format, args…) | 返回一个包含所给的的格式字符串以及 args 参数的错误值 |
| fmt.Fprint(writer, args…) | 按照格式 %v 和空格分割的非字符串将 args 写入 writer 中,返回写入的字节数和一个值为 error 或者 nil 的错误值 |
| fmt.Fprintf(writer, format, args…) | 按照字符串格式 format 将 args 写入 writer, 返回写入的字节数和一个值为 error 或者 nil 的错误值 |
| fmt.Print(args…) | 使用格式 %v 以空格分割的非字符串将 args 写入 os.Stdout,返回写入的字节数和一个值为 error 或者 nil 的错误值 |
| fmt.Printf(format, args…) | 使用格式化字符串 format 将 args 写入 os.Stdout |
| fmt.Println(args…) | 使用格式 %v 以空格分割以换行符结尾将参赛 args 写入 os.Stdout |
| fmt.Sprint(args…) | 返回 args 参数组成的字符串 |
| fmt.Sprintf(format, args…) | 返回格式 format 格式化的 args 字符串 |
| fmt.Sprintln(args…) | 返回使用格式 %v 格式化 args 后的字符串 |