内置函数:builtin
new:用来分配内存,主要用来分配值类型,比如int、flaot32、struct...返回的是指针
![e7e4ac803faf91d5d5a3d516005f1248.png](https://img-blog.csdnimg.cn/img_convert/e7e4ac803faf91d5d5a3d516005f1248.png)
make:用来分配内存,主要用来分配引用类型,比如chan、map、slice。
错误处理:
1)在go语言中追求简洁,所以,go语言不支持传统的try..catch..finally这种处理。
2)go中引入的处理方式为:defer.panic,recover
3)这几个异常的使用场景可以简单描述为:go中可以抛出一个panic的异常,然后再defer中通过recover捕获这个异常,然后正常处理。
![42c600db8023245cb21afb47af47167b.png](https://img-blog.csdnimg.cn/img_convert/42c600db8023245cb21afb47af47167b.png)
好处:进行错误处理后,程序不会轻易挂掉,如果加入预警代码,就可以让程序更加的健壮。
自定义错误:
go程序中, 也支持自定义错误,使用errors.New 和 panic 内置函数。
errors.New(“错误说明”),会返回一个error类型的值,表示一个错误。
panic内置函数,接受一个interface{}类型的值(也就是任何值)作为参数。可以接受error类型的变量,输出错误信息,并退出程序。
![05b586c2dff12a92aa4f9b31168747ae.png](https://img-blog.csdnimg.cn/img_convert/05b586c2dff12a92aa4f9b31168747ae.png)
go函数练习:
循环打印输入的月份的天数
![724731485ad32fc0e38ad27553a127c6.png](https://img-blog.csdnimg.cn/img_convert/724731485ad32fc0e38ad27553a127c6.png)
![6f59fd439983f617105f2832f8b73432.png](https://img-blog.csdnimg.cn/img_convert/6f59fd439983f617105f2832f8b73432.png)
随机猜数游戏:
随机生成一个1--100的整数,玩家十次机会猜数。
![62e782a7aba5199c18579c5980a3fd2c.png](https://img-blog.csdnimg.cn/img_convert/62e782a7aba5199c18579c5980a3fd2c.png)
![89ae53b944c6467e4df49042a163b25a.png](https://img-blog.csdnimg.cn/img_convert/89ae53b944c6467e4df49042a163b25a.png)