千锋GO教程:1.知名编程语言或系统的发展简史-【千锋教育】Go语言 基础+进阶+高级(学完可就业/2019版)-连载中

AID:
CID:
视频图片:
作者头像:
弹幕地址:
视频描述:

热门回复:

  • mxbmxl:还是韩茹老师讲得好,期待韩茹老师的框架和项目实战教程
  • 王静俊28:花了一个月零20天,学完韩顺平老师的391个视频,最近两天刚看完韩茹老师的go包进阶版,打算花最近一周的晚上复习下基础版;期待老师的高级教程......[喜欢] 谢谢老师,老师辛苦了[微笑]
  • 虔诚信徒2oy:我写了一个高效的Go语言缓存框架 github地址 https://github.com/xy63237777/channel-cache 里面有详细的代码设计和思想. 也希望大家可以加入自己的优化和想法 看完这个代码相信你多少会内力大声. 当然你也可以加入自己的东西自己拿来使用
  • 小洲哥_:看了一下午韩顺平老师的视频,发现我一下午学了啥,我开了两倍速,加快进,看了33节,然后才发现才开始讲变量,中途很多废话,还是这个讲的清晰讲的好
  • mxbmxl:package main import ( "fmt" "math" ) type areaError struct { errMsg string radius float64 } //实现error接口,就是实现Error方法,该方法返回字符串 func (e *areaError) Error() string { return fmt.Sprintf("error:半径, %.2f, %s", e.radius, e.errMsg) } //根据半径计算圆面积函数,注意,第二个返回值是go内置的 error 类型 func circleArea(radius float64) (float64, error) { if radius < 0 { //返回error对象指针 return 0, &areaError{errMsg: "半径不合法", radius: radius} } return math.Pi * math.Pow(radius, 2), nil } func main() { r := -3.5 s, err := circleArea(r) if err != nil { fmt.Println(err.Error()) //错误值其实就是错误对象调用Error方法执行的结果 fmt.Printf("错误类型:%T, 错误值:%s\n", err, err) //err //错误对象的类型断言 if ae, ok := err.(*areaError); ok { fmt.Printf("断言后错误类型:%T,错误信息:%s", ae, ae.errMsg) } return //结束主函数的执行 } fmt.Printf("圆面积:%.2f\n", s) }打印结果: error:半径, -3.50, 半径不合法 错误类型:*main.areaError, 错误值:error:半径, -3.50, 半径不合法 断言后错误类型:*main.areaError,错误信息:半径不合法