Go指南练习之《错误》

来源:互联网 发布:respawn linux 编辑:程序博客网 时间:2024/05/18 18:14

Go官网指南

练习原文

从先前的练习中复制 Sqrt 函数,并修改使其返回 error 值。

由于不支持负数,当 Sqrt 接收到一个负数时,应当返回一个非 nil 的错误值。

创建一个新类型
type ErrNegativeSqrt float64

为其实现
func (e ErrNegativeSqrt) Error() string

使其成为一个 error, 该方法就可以让 ErrNegativeSqrt(-2).Error()
返回 “cannot Sqrt negative number: -2”

关键信息

定义float64的类型ErrNegativeSqrt ,并重写Error()方法

代码

package mainimport (    "fmt"    "math")// 定义类型type ErrNegativeSqrt float64// 重写Error()func (e ErrNegativeSqrt) Error() string {    return fmt.Sprintf("cannot Sqrt negative number:  %v", float64(e))}func Sqrt(x float64) (float64, error) {    if x < 0 {        return 0, ErrNegativeSqrt(x)    }    return math.Sqrt(x), nil}func main() {//通常函数会返回一个 error 值,调用的它的代码应当判断这个错误是否等于 nil,    来进行错误处理。//这里只是简单的打印    fmt.Println(Sqrt(2))    fmt.Println(Sqrt(-2))}

打印结果

1.4142135623730951 <nil>0 cannot Sqrt negative number:  -2
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 安卓系统无法安装第三方软件怎么办 金立手机报毒不能安装软件怎么办 js中下拉菜单被图片挡住怎么办 更换主机后用户名跟密码忘了怎么办 换手机号了京东账号登录不上怎么办 口令卡绑定时访问页面找不回怎么办 手机淘宝购物车不小心删除了怎么办 上淘宝网图片文字不清晰怎么办 淘宝店铺低消费人群占比多怎么办 微信只能在应用商城里面打开怎么办 淘宝买了特价商品店家不发货怎么办 红米5a装不下卡怎么办 红米3s流量太慢怎么办 红米3s触屏失灵怎么办 红米note的4g信号差怎么办 电信4g网速慢怎么办红米手机 红米3电信4g信号不好怎么办 红米note3无法连接4g怎么办 红米2a手机开不了机怎么办 红米2a不支持微信运动怎么办 红米2a开不了机怎么办 红米2a突然开不了机怎么办 苹果手机刷机刷到一半没电了怎么办 红米5手机死屏了怎么办 小米2a手机开不了机怎么办 小米2a长时间没用开不了机怎么办 红米手机玩游戏太卡怎么办 红米2a无限重启怎么办 红米3s像素好差怎么办 红米4x后摄像头进水了怎么办 红米手机卡死了又不能拆电池怎么办 红米1s格式化输入法没了怎么办 红米5a锁屏密码怎么办 红米1s手机开不开机怎么办 红米2a忘记解锁密码怎么办 红米手机忘了解锁图案怎么办 账户密码忘记了手机号不用了怎么办 手机电池用完了冲不进去电怎么办 华为手机电池一体的想扣电池怎么办 苹果微信支付显示需要验证码怎么办 天猫极速退货上门取件预约满怎么办