- Go语言fmt.Printf使用指南&占位符总结
- Go中的fmt几种输出的区别和格式化方式
- Golang Playground
fmt.Print
有几个变种:
Print
: 输出到控制台,不接受任何格式化操作Println
: 输出到控制台并换行Printf
: 支持打印出格式化的字符串Errorf
: 支持格式化方式创建一个错误(error
)Sprintf
: 支持格式化,返回一个字符串而不带任何输出Fprintf
: 来格式化并输出到 io.Writers 而不是 os.Stdout 其中最常用的就是Errorf
和Printf
,前者常用于直接创建一个error类型变量,后者常用于格式化打印字符串
package main
import "fmt"
func make_error() error {
return fmt.Errorf("这里出错了")
}
func main() {
err := make_error()
fmt.Printf("报错,原因为:%v", err.Error())
}
对于支持格式化字符串的方法,常用占位符如下
package main
import "fmt"
type Student struct {
Name string
}
func main() {
she := Student{Name: "Alice"}
slice := []string{"a", "b"}
num := int(123)
str := "str"
boo := false
fmt.Println("%v输出值的默认格式")
fmt.Printf("she is: %v \n", she)
fmt.Printf("she is: %+v \n", she)
fmt.Printf("she is: %#v \n", she)
fmt.Printf("slice is: %v \n", slice)
fmt.Printf("slice is: %+v \n", slice)
fmt.Printf("slice is: %#v \n", slice)
fmt.Printf("num is: %v \n", num)
fmt.Printf("num is: %+v \n", num)
fmt.Printf("num is: %#v \n", num)
fmt.Println("%T输出值的类型")
fmt.Printf("she is: %T \n", she)
fmt.Printf("slice is: %T \n", slice)
fmt.Printf("num is: %T \n", num)
fmt.Printf("str is: %T \n", str)
fmt.Printf("boo is: %T \n", boo)
fmt.Println("%d输出十进制数")
fmt.Printf("num is: %d \n", num)
fmt.Println("%f输出浮点数")
fmt.Printf("num is: %f \n", num)
fmt.Println("%s输出string或byte[]的字符串表示")
fmt.Printf("str is: %s \n", str)
fmt.Println("%t输出布尔值")
fmt.Printf("boo is: %t \n", boo)
}