原文地址:Go面试看这里了~(二十三)
1、有异常类型么?
Go没有异常类型,只有错误类型(Error),函数要想返回错误,通常用返回值表示异常状态,像C错误码,可逐层返回,直到被处理。
Go虽无异常概念,但却有更为恐怖的panic,由于有recover,在一定程度上, panic 可以类比做异常,Go错误和异常(panic)是可以互相转换的,方式如下:
-
错误转异常:如程序逻辑上尝试请求某URL,最多尝试三次,尝试三次的过程中请求失败是错误,尝试完第三次还不成功的话,失败就被提升为异常。
-
异常转错误:如panic触发的异常被recover恢复后,将返回值中error类型的变量进行赋值,以便上层函数继续走错误处理流程。
2、指针的作用?
指针变量指向值的内存地址,指针类型用于传递地址,而不是传递值,Go函数所有参数都是传递一个复制的值,