当前位置: 代码迷 >> 综合 >> 函数-内置函数
  详细解决方案

函数-内置函数

热度:11   发布时间:2023-10-16 12:51:53.0
  • 内置函数
    • close--主要用来关闭channel
    • len--用来求长度
    • new--用来分配内存(值类型)
    • make--用来分配内存(引用类型)
    • append--用来追加元素到数组
    • panic和recover--用来做错误处理
    • new和make的区别

内置函数

内置函数 介绍
close() 主要用来关闭channel
len() 用来求长度,比如string、array、slice、map、channel
new() 用来分配内存,主要用来分配值类型,比如int、struct,返回的是指针
make() 用来分配内存,主要用来分配引用类型,比如chan、map、slice
append() 用来追加元素到数组、slice中
panic()和recover() 用来做错误处理

close--主要用来关闭channel

len--用来求长度

比如string、arrav、slice、map、channel

new--用来分配内存(值类型)

主要用来分配值类型内存,比如int、struct。返回的是指针

func main() {var i intfmt.Println(i)j := new(int) //返回一个地址*j = 100 //为j赋值,需要使用*j来赋值,因为j是一个地址fmt.Println(*j)}

make--用来分配内存(引用类型)

主要用来分配引用类型,比如chan、map、slice

append--用来追加元素到数组

用来追加元素到数组、slice中

func main() {var a []int                 //定义一个切片,[]如果是空的话是切片,[5]是一个长度为5的数组a = append(a, 10, 20, 3242) //在a这个切片里面追加一些数值a = append(a, a...)         //a... 意思是把a这个切片展开fmt.Println(a)}

panic和recover--用来做错误处理

package mainimport ("errors""fmt""time"
)//定义一个报错函数
func initConfig() (err error) {return errors.New("init config failed ")
}// recover和panic的使用
func test() {defer func() { //定义一个错误捕获匿名函数if err := recover(); err != nil {fmt.Println(err)}}()  //在末尾添加()表示执行定义的匿名函数b := 0a := 100 / bfmt.Println(a)//主动抛出异常err := initConfig()if err != nil {panic(err)}return
}func main() {for {test()time.Sleep(time.Second)}var a []int                 //定义一个切片,[]如果是空的话是切片,[5]是一个长度为5的数组a = append(a, 10, 20, 3242) //在a这个切片里面追加一些数值a = append(a, a...)         //a... 意思是把a这个切片展开fmt.Println(a)}

new和make的区别

package mainimport "fmt"func test() {s1 := new([]int) //声明一个切片(slice)fmt.Println(s1) //返回指针    &[]s2 := make([]int, 10) //长度为10的切片    [0 0 0 0 0 0 0 0 0 0]fmt.Println(s2)*s1 = make([]int, 5) //初始化slice,s1,这里分配5个容量的空间,默认填充0(*s1)[0] = 100       //给s1赋值索引0添加值 返回:&[100 0 0 0 0]s2[0] = 100          //给s2中索引0添加值,返回:[100 0 0 0 0 0 0 0 0 0]fmt.Println(s1, s2)return
}func main() {test()
}
  相关解决方案