内置函数 内置函数 介绍 close 主要用来关闭channel len 用来求长度,比如string、array、slice、map、channel new 用来分配内存,主要用来分配值类型,比如int、struct。返回的是指针 make 用来分配
内置函数
内置函数 介绍
close 主要用来关闭channel
len 用来求长度,比如string、array、slice、map、channel
new 用来分配内存,主要用来分配值类型,比如int、struct。返回的是指针
make 用来分配内存,主要用来分配引用类型,比如chan、map、slice
append 用来追加元素到数组、slice中
panic和recover 用来做错误处理 错误尝试恢复
panic可以在任何地方引发
recover只有在defer调用的函数中有效
package main
import "fmt"
// panic 和 recover
func funcA(){
fmt.Println("a")
}
func funcB(){
// 刚刚打开数据库连接
defer func () {
err := recover()
fmt.Println(err)
fmt.Println("释放数据库连接...")
}()
panic("出现严重错误!!!") // 程序崩溃退出
fmt.Println("b")
}
func funcC(){
fmt.Println("c")
}
func main() {
funcA()
funcB()
funcC()
}
- recover()必须搭配defer使用。
- defer一定要在可能引发panic的语句之前定义
fmt
标准库fmt
-
Print函数直接输出内容
-
Printf函数支持格式化输出字符串
-
Println函数会在输出内容的结尾添加一个换行符
格式化占位符
*printf系列函数都支持format格式化参数
通用占位符
布尔型
整型
浮点数与复数
字符串和[]byte
指针
宽度标识符
其他flag
获取输入
fmt.Scan
fmt.Scanf
fmt.Scanln
package main
import "fmt"
// fmt
func main(){
fmt.Print("中国")
fmt.Print("北京")
fmt.Println("_________")
fmt.Println("香蕉")
fmt.Println("西瓜")
// Printf("格式化字符串", 值)
// %T: 查看类型
// %d: 十进制数
// %b: 二进制数
// %o: 八进制数
// %x: 十六进制数
// %c: 字符
// %s: 字符串
// %p: 指针
// %v: 值
// %f: 浮点数
// %t: 布尔值
var m1 = make(map[string]int, 1)
m1["理想"] = 100
fmt.Printf("%v\n", m1) // map[理想:100]
fmt.Printf("%#v\n", m1) // map[string]int{"理想":100}
printBaifenbi(90)
// 整数 字符
fmt.Printf("%q\n", 65) // 'A'
// 浮点数和复数
fmt.Printf("%b\n", 3.14159265352938384626)
// 字符串
fmt.Printf("%q\n", "学习思考")
fmt.Printf("%5.2s\n", "书山有路勤为径")
// 获取用户输入
// var s string
// fmt.Scan(&s)
// fmt.Println("用户输入的内容是:",s)
// var (
// name string
// age int
// class string
// )
// fmt.Scanf("%s %d %s\n", &name, &age, &class)
// fmt.Println(name, age, class)
// fmt.Scanln(&name, &age, &class)
// fmt.Println(name, age, class)
fmt.Printf("%b\n", 10)
}
func printBaifenbi(num int) {
fmt.Printf("%d\n", num)
fmt.Printf("%d%%\n", num)
}