Goland:断言、error、panic/recover和defer
如果一个接口没有方法,那么这个接口类型的变量可以接收任何类型的值,因此可以用来做类型检查,具体操作:
var i interface{} := 123
_,ok := i.(int)//通过这行代码可以有:如果i被赋予int型,则返回被赋予的数值和bool类型的true
error是一种类型
panic抛出异常,后面的代码不执行(defer除外),recover相当于取消panic,一般recover都在defer里,所以panic后面的函数还是不会执行的
defer是所有程序执行后再执行的,常用于关闭数据库之类的操作,用法就是defer func(){函数体}()//匿名函数
多个defer是按照栈的形式存储的,先产生的后执行
如果defer和return同时存在时,先执行return后面的操作,再执行defer后面的操作,最后再退出