golang 内置函数 buildin与错误处理

1.len:用来求长度,如string,array,slice,map,channel

2.new:用来分配内存,主要用来分配值类型,比如int,float32,struct...返回的是指针

复制代码
func main() {
    num1 := 100
    //num1的类型是int,num1的值是100,num1的地址是0xc000020088
    fmt.Printf("num1的类型是%T,num1的值是%v,num1的地址是%v\n", num1, num1, &num1)
    //使用new(int)的num2是指针类型*int
    //num2的类型是*int,num2的值是0xc0000200a0,num2的地址是0xc00000e030,num2指针指向的值是0
    num2 := new(int)
    fmt.Printf("num2的类型是%T,num2的值是%v,num2的地址是%v,num2指针指向的值是%v\n", num2, num2, &num2, *num2)

}
复制代码

 

3.make:用来分配内存,主要用来分配引用类型,比如channel,map,slice

 

4.错误处理 defer+recover

进行错误处理后,程序不会轻易挂掉,如果加入预警代码,可以让程序更加健壮

复制代码
func test(n1 int, n2 int) {
    defer func() {
        err := recover() //recover()内置函数,可以捕获到异常
        if err != nil {  //err不为空,说明捕获到了异常
            fmt.Println("错误信息为:", err)
            //加入预警代码
            fmt.Println("通知给管理员")
        }
    }() //使用匿名函数
    res := n1 / n2
    fmt.Println(res)
}
func main() {
    num1 := 100
    num2 := 0
    test(num1, num2)
    fmt.Println("main函数继续运行")

}
复制代码

5.自定义错误:errors.New("错误说明")+panic内置函数接收error类型的变量,输出错误信息并退出程序

复制代码
//函数去读取配置文件config.ini的信息
//如果文件名传入不正确,就返回一个自定义的错误

//errors.New抛出错误
func readConf(name string) (err error) { if name == "config.ini" { return nil } else { //返回一个自定义错误 return errors.New("读取文件错误") } }
//panic中断程序
func test(name string) { err := readConf(name) if err != nil { //如果读取文件函数发送错误,就输出这个错误,并终止程序 panic(err) } fmt.Println("test()继续执行") } func main() { test("confit.ini") }
复制代码

 

posted @   潇潇暮鱼鱼  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示