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 mainimport ( "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