Go fmt输出和占位符

206 阅读1分钟
  • Print: 输出到控制台,不接受任何格式化操作
  • Println: 输出到控制台并换行
  • Printf : 支持打印出格式化的字符串
  • Errorf: 支持格式化方式创建一个错误(error
  • Sprintf: 支持格式化,返回一个字符串而不带任何输出
  • Fprintf: 来格式化并输出到 io.Writers 而不是 os.Stdout 其中最常用的就是ErrorfPrintf,前者常用于直接创建一个error类型变量,后者常用于格式化打印字符串
package main
import "fmt"

func make_error() error {
    return fmt.Errorf("这里出错了")
}

func main() {
    err := make_error()
    fmt.Printf("报错,原因为:%v", err.Error())
}

image.png

对于支持格式化字符串的方法,常用占位符如下

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)
}

image.png