控制台
大约 2 分钟
控制台
核心:fmt包。详见 studygolang.com/pkgdoc
控制台输出 (打印)
格式化打印
fmt.Println("普通的带换行打印")
// 格式化打印
fmt.Printf("对应字符:%c", 'A') // A
fmt.Printf("对应字符:%T", 25) // int
fmt.Println(unsafe.Sizeof(num3)) // 8 (Byte)
格式化打印字符(详见 studygolang.com/pkgdoc中fmt 部分的文档)
// 通用
%v 值的默认格式表示
%+v 类似%v,但输出结构倜时会添加字段名
%#v 值的Go语法表示
%T 值的类型的Go语法表示
%% 百分号
// 布尔
%t 单词true/false
// 整数
%b 二进制
%c unicode码值
%d 十进制
%o 八进制
%q 单引号括起来的go语法字符字面值,必要时用转义符号。即打印出来的结果是带引号的:"hello\tworld"
%x 十六进制(小写)
%X 十六进制(大写)
%U Unicode码值(U+1234表示法)
// 浮点与复数
%b
%e
%E
%f
%F
%g
%G
// 字符串和[]byte
%s
%q
%x
%X
// 指针
%p 表示为0x加十六进制
转义字符
与其他语言基本一样的
转义符 | 含义 | 补充 | Unicode |
---|---|---|---|
\b | 退格 | backspace | \u0008 |
\n | 换行 | \u000a | |
\r | 回车 | 将光标指针返回本行的开头,后续输出会替换原有字符 | \u000d |
\t | 制表符 | tab | \u0009 |
\" | 双引号 | \u0022 | |
\' | 单引号 | \u0027 | |
\\ | 反斜杠 | \u005c |
控制台输入
fmt Scan函数
和打印一样同样是fmt库,里面的 Scanln 函数
原型
// 常用的两个:
// 这里的 `a ...interface{}` 类似与C++中的泛型函数
func Scan(format string, a ...interface{}) (n int, err error) // 从str扫描文本,空白符分割
func Scanln(a ...interface{}) (n int, err error) // 从str扫描文本,换行符分割
// 其他类似的:
func Sscanln
func Fscan // 从r扫描文本
func Fscanln
使用 (Scanln)
package main
import "fmt"
func main() {
var age int
fmt.Println("录入年龄:")
fmt.Scanln(&age) // 传入age地址,这里有点类似于字符串转数值类型的使用,也会有可能出错
fmt.Printf("年龄:%v", age)
}
使用 (Scan)
package main
import "fmt"
func main() {
var age int
var name string
var score float32
var isVIP bool
fmt.Println("录入年龄, 姓名, 成绩, 是否VIP, 空格分割")
fmt.Scanf("%d %s %f %t", &age, &name, &score, &isVIP)
}