使用fmt.Sprintf()构造字符串

package main

import "fmt"

func main() {
   name := "张三"
   gender := "男"
   height := 172.78
   age := 18

   // 占位符和对应变量的数据类型完全匹配
   str1 := fmt.Sprintf("俺叫%s,性别%s,身高%.2f㎝,今年%d岁。", name, gender, height, age)
   fmt.Println(str1) // 俺叫张三,性别男,身高172.78㎝,今年18岁。

   // 使用“%v”万能占位符
   str2 := fmt.Sprintf("俺叫%v,性别%v,身高%v㎝,今年%v岁。", name, gender, height, age)
   fmt.Println(str2) // 俺叫张三,性别男,身高172.78㎝,今年18岁。

   // 占位符和对应变量的数据类型不完全匹配
   str3 := fmt.Sprintf("俺叫%s,性别%d,身高%s㎝,今年%d岁。", name, gender, height, age)
   fmt.Println(str3) // 俺叫张三,性别%!d(string=男),身高%!s(float64=172.78)㎝,今年18岁。
}

//========== 总结 ==========//
// 1、使用fmt.Sprintf()时应该尽量使用具体的占位符,避免无脑使用“%v”万能占位符。

//========== 常用占位符及其对应数据类型 ==========//
// %v   :任意数据类型
// %s   :string
// %d   :int
// %f   :float64
// %.xf :float64,其中的x表示小数位数,如:%.2f、%.3f、%.4f、……
// %t   :bool
// %p   :指针
// %b   :二进制
// %o   :八进制
// %x   :十进制
// %T   :输出变量的数据类型

Copyright © 2024 码农人生. All Rights Reserved