Golang学习笔记(09-2-fmt包)

100 阅读2分钟

1. 常用格式化参数

%v      值的默认格式表示
%+v     类似%v,但输出结构体时会添加字段名
%#v     值的Go语法表示
%T      值的类型的Go语法表示
%%      百分号
 
%t      单词true或false

%b      表示为二进制
%c      该值对应的unicode码值
%d      表示为十进制
%o      表示为八进制
%q      该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示
%x      表示为十六进制,使用a-f
%X      表示为十六进制,使用A-F
%U      表示为Unicode格式:U+1234,等价于"U+%04X"
    
%b      无小数部分、二进制指数的科学计数法,如-123456p-78;参见strconv.FormatFloat
%e      科学计数法,如-1234.456e+78
%E      科学计数法,如-1234.456E+78
%f      有小数部分但无指数部分,如123.456
%F      等价于%f
%g      根据实际情况采用%e或%f格式(以获得更简洁、准确的输出)
%G      根据实际情况采用%E或%F格式(以获得更简洁、准确的输出)
    
%s      直接输出字符串或者[]byte
%q      该值对应的双引号括起来的go语法字符串字面值,必要时会采用安全的转义表示
%x      每个字节用两字符十六进制数表示(使用a-f)
%X      每个字节用两字符十六进制数表示(使用A-F)
    
%p      表示为十六进制,并加上前导的0x   

2. 常用方法

2.1. 输出方法

1.  fmt.Print()
    Func:   Print(a ...interface{}) (n int, err error)
    Man:    Print采用默认格式将其参数格式化并写入标准输出。

2.  fmt.Println()
    Func:   Println(a ...interface{}) (n int, err error)
    Man:    Println采用默认格式将其参数格式化并写入标准输出,末尾添加换行符
    
3.  fmt.Printf()
    Func:   Printf(format string, a ...interface{}) (n int, err error)
    Man:    格式化输出的字符串

2.2. 输入方法

1.  fmt.Scan()
    Func:   Scan(a ...interface{}) (n int, err error)
    Man:    从标准输入读取内容赋值给指针变量,以空白符分割
    
2.  fmt.Scanln()
    Func:   Scanln(a ...interface{}) (n int, err error)
    Man:    从标准输入读取内容赋值给指针变量,以换行符分割

3.  fmt.Scanf()
    Func:   Scanf(format string, a ...interface{}) (n int, err error)
    Man:    从标准输入读取内容赋值给指针变量,根据format格式读取

3. 案例

3.1. 读取用户输入

package main

import (
	"fmt"
	"strings"
)

func main()  {
	var (
		name string
		age uint8
	)
	// 使用Scanln()读取
	fmt.Print("请输入姓名:")
	fmt.Scanln(&name)
	fmt.Print("请输入年龄:")
	fmt.Scanln(&age)
	fmt.Printf("姓名:%s;年龄:%d\n", name, age)
	fmt.Println(strings.Repeat("-",30))
	// 使用Scanf()读取
	fmt.Println("请依次输入姓名和年龄,用空格分割!")
	fmt.Scanf("%s %d\n", &name, &age)
	fmt.Printf("姓名:%s;年龄:%d\n", name, age)
}
[root@heyingsheng src]# go run studygo/day03/input/main.go
请输入姓名:张三
请输入年龄:19
姓名:张三;年龄:19
------------------------------
请依次输入姓名和年龄,用空格分割!
李四 20
姓名:李四;年龄:20