请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

err.(*os.PathError) 这个用法 不太明白

func writeFile(filename string) {
file, err := os.OpenFile(filename,
os.O_EXCL|os.O_CREATE|os.O_WRONLY, 0666)

if err != nil {
	err.Error()
	if pathError, ok := err.(*os.PathError); !ok {
		panic(err)
	} else {
		fmt.Printf("%s, %s, %s\n",
			pathError.Op,
			pathError.Path,
			pathError.Err)
	}
	return
}

老师 err.(*os.PathError) 这个用法 我不太明白 err 返回的是一个 PathError 结构体的 地址 这里的意思 是断言 吗?

正在回答 回答被采纳积分+3

1回答

ccmouse 2018-12-08 21:56:29

是的,err是一个接口,它到底是什么我们不知道。所以通过这种类型断言的写法来查看。后面跟个ok表示它到底是不是一个*PathError,然后根据是或不是来分别执行不同操作

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号