fmt
常用占位符
动词 | 功能 |
---|---|
%v |
按值的本来值输出 |
%+v |
在 %v 的基础上,对结构体字段名和值进行展开 |
%#v |
输出 Go 语言语法格式的值 |
%T |
输出 Go 语言语法格式的类型和值 |
%% |
输出 %% 本体 |
%b |
整型以二进制方式显示 |
%o |
整型以八进制方式显示 |
%d |
整型以十进制方式显示 |
%x |
整型以 十六进制显示 |
%X |
整型以十六进制、字母大写方式显示 |
%U |
Unicode 字符 |
%f |
浮点数 |
%p |
指针,十六进制方式显示 |
- Println:
- 一次输入多个值的时候 Println 中间有空格
- Println 会自动换行,Print 不会
- Print:
- 一次输入多个值的时候 Print 没有 中间有空格
- Print 不会自动换行
- Printf
- Printf 是格式化输出,在很多场景下比 Println 更方便
package main
import "fmt"
func main() {
fmt.Print("zhangsan", "lisi", "wangwu") // zhangsanlisiwangwu
fmt.Println("zhangsan", "lisi", "wangwu") // zhangsan lisi wangwu
name := "zhangsan"
age := 20
fmt.Printf("%s 今年 %d 岁\n", name, age) // zhangsan 今年 20 岁
fmt.Printf("值:%v --> 类型: %T", name, name) // 值:zhangsan --> 类型: string
}
Sprint
Sprint系列函数会把传入的数据生成并返回一个字符串。
package main
import "fmt"
func main() {
s1 := fmt.Sprint("枯藤")
fmt.Println(s1) // 枯藤
name := "枯藤"
age := 18
s2 := fmt.Sprintf("name:%s,age:%d", name, age) // name:枯藤,age:18
fmt.Println(s2)
s3 := fmt.Sprintln("枯藤") // 枯藤 有空格
fmt.Println(s3)
}
package main
import "fmt"
func main() {
m := map[string]string{
"username": "zhangsan",
}
// 1、占位符
fmt.Printf("%T %v \n", m, m)
fmt.Printf("%T %+v \n", m, m)
fmt.Printf("%T %#v \n", m, m)
// Println: 自动换行
fmt.Println("Println, 自动换行")
fmt.Println("Println, 自动换行")
// Print
fmt.Print("Print, 换行")
fmt.Print("Print, 换行")
name := "zhangsan"
age := 24
// Printf : 格式化打印输出
fmt.Printf("\n 姓名:%s age: %d \n", name, age)
// Sprint(最常用的) :字符串格式化
s := fmt.Sprintf("姓名:%s age: %d", name, age)
fmt.Println(s)
}