快捷搜索: 王者荣耀 脱发

非零基础快速入门 Go 语言_Printf 格式化参数总结

非零基础快速入门 Go 语言_Printf 格式化参数总结

fmt 的三大函数对比

fmt 标准库是我们在学习和编写 Go 代码,使用最频繁的库之一。

在新手阶段,通常会使用 fmt 包的 打印函数来查看变量的信息。

这样的打印函数,有三个

  1. fmt.Print:正常打印字符串和变量,不会进行格式化,不会自动换行,需要手动添加 进行换行,多个变量值之间不会添加空格
  2. fmt.Println:正常打印字符串和变量,不会进行格式化,多个变量值之间会添加空格,并且在每个变量值后面会进行自动换行
  3. fmt.Printf:可以按照自己需求对变量进行格式化打印。需要手动添加 进行换行

Printf 的占位符

Printf 占位符是掌握 Printf的核心要点

通用占位符
    %v:以值的默认格式打印 %+v:类似%v,但输出结构体时会添加字段名 %#v:值的Go语法表示 %T:打印值的类型
type Profile struct {
          
   
    name string
    gender string
    age int
}

func main() {
          
   
    var people = Profile{
          
   name:"wangbm", gender: "male", age:27}
    fmt.Printf("%v 
", people)  // output: {wangbm male 27}
    fmt.Printf("%T 
", people)  // output: main.Profile

    // 打印结构体名和类型
    fmt.Printf("%#v 
", people) // output: main.Profile{name:"wangbm", gender:"male", age:27}
    fmt.Printf("%+v 
", people) // output: {name:wangbm gender:male age:27}
}
打印布尔值
func main() {
    fmt.Printf("%t 
", true)   //output: true
    fmt.Printf("%t 
", false)  //output: false
}
打印字符串
    %s:输出字符串表示(string类型或[]byte) %q:双引号围绕的字符串,由Go语法安全地转义 %x:十六进制,小写字母,每字节两个字符 %X:十六进制,大写字母,每字节两个字符
func main() {
          
   
    fmt.Printf("%s 
", []byte("Hello, Golang"))  // output: Hello, Golang
    fmt.Printf("%s 
", "Hello, Golang")     // output: Hello, Golang

    fmt.Printf("%q 
", []byte("Hello, Golang"))  // output: "Hello, Golang"
    fmt.Printf("%q 
", "Hello, Golang")     // output: "Hello, Golang"
    fmt.Printf("%q 
", `hello 
 world`)  // output: "hello \r\n world"

    fmt.Printf("%x 
", "Hello, Golang")     // output: 48656c6c6f2c20476f6c616e67
    fmt.Printf("%X 
", "Hello, Golang")     // output: 48656c6c6f2c20476f6c616e67
}
打印指针 结果是地址
func main() {
    var people = Profile{name:"wangbm", gender: "male", age:27}
    fmt.Printf("%p", &people)  // output: 0xc0000a6150
}
打印整型
    %b:以二进制打印 %d:以十进制打印 %o:以八进制打印 %x:以十六进制打印,使用小写:a-f %X:以十六进制打印,使用大写:A-F %c:打印对应的的unicode码值 %q:该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示 %U:该值对应的 Unicode格式:U+1234,等价于”U+%04X”

更多待补充 只要常用的…

经验分享 程序员 微信小程序 职场和发展