首页 > 其他分享 >Exercise: Errors

Exercise: Errors

时间:2023-08-05 12:00:13浏览次数:34  
标签:Errors return float64 ErrNegativeSqrt Sqrt Error Exercise

Go的接口+Error使用练习,正好里面还引入了一个小知识点,不要在Error()实现里面用Sprint一个实现了Error()的类型,因为Sprint里面会调用类型的Error(),无限循环。主要代码如下:

 1 type ErrNegativeSqrt float64
 2 
 3 func (e ErrNegativeSqrt) Error() string {
 4     return fmt.Sprintf("cannot Sqrt negative number: %v", float64(e))
 5 }
 6 
 7 func Sqrt(x float64) (float64, error) {
 8     if x < 0 {
 9         return 0, ErrNegativeSqrt(x)
10     }
11     e, z := 1e-15, 1.0
12     for math.Abs(z*z-x) > e {
13         z -= (z*z - x) / (2 * z)
14     }
15     return z, nil
16 }

Sqrt的实现用的前面练习的内容。

标签:Errors,return,float64,ErrNegativeSqrt,Sqrt,Error,Exercise
From: https://www.cnblogs.com/wxiong/p/17607741.html

相关文章

  • Exercise: Fibonacci closure
    Go里面斐波那契数列的简单实现。我那会儿的教材是1,1起算,即f(0)=1,f(1)=1。Go的Exercise说明里面是0,1起算。既然是用Go写,索性就用它的定义吧,主要代码如下(Go的这个multipleresult用起来是真方便):1funcfibonacci()func()int{2F0,F1:=0,13returnfunc()int......
  • Exercise: Maps
    strings.Fields拆分单词,然后用map[string]int直接统计,主要代码:1funcWordCount(sstring)map[string]int{2fields:=strings.Fields(s)3result:=make(map[string]int)4for_,field:=rangefields{5result[field]+=16}7retu......
  • Uncaught AssertionError: Assertion failed. See https://openlayers.org/en/v6.15.1
    openlayers点击具体错误Cannotfitemptyextentprovidedas geometry.这个错误信息意味着OpenLayers在尝试使用一个空的范围作为几何图形时出现了问题。范围(extent)表示几何图形覆盖的边界框或区域,它由四个坐标值组成:最小经度、最小纬度、最大经度和最大纬度。当范围没有......
  • Some Errors
    加注释时,有/*却没有*/与之配对。move,ws,div,pipe,y1,y2,x1,x2不可作为变量名、函数名等。注意空间限制(一定要利用fprintf(stderr,"%.3lfMB\n",(&Memory_Begins-&Memory_Ends)/1048576.0);计算!!!1)......
  • 关闭vue项目中Uncaught runtime errors弹窗页面
    看控制台发现有webpack类名,应该是webpack搞出来的解決办法再vue.config.js中添加以下配置:module.exports=defineConfig({ ... devServer:{client:{overlay:false}}})......
  • MySQL参数max_connect_errors分析释疑
    最近一MySQL服务器,由于一些特殊因素遇到“ERROR1129(00000):Host'xxx'isblockedbecauseofmanyconnectionerrors.Unblockwith'mysqladminflush-hosts'”,在问题解决后,在详细了解参数max_connect_errors的过程中,有些不同网络资料的矛盾描述确实让我有点迷惑和混淆(关......
  • golang之errors包
    errors包常用方法funcUnwrap(errerror)error//获得err包含下一层错误funcIs(err,targeterror)bool//判断err是否包含targetfuncAs(errerror,targetinterface{})bool//判断err是否为target类型   自定义错误信息errors.New("......
  • golang之errors包
    errors包常用方法funcUnwrap(errerror)error//获得err包含下一层错误funcIs(err,targeterror)bool//判断err是否包含targetfuncAs(errerror,targetinterface{})bool//判断err是否为target类型   自定义错误信息err......
  • Web.Config中customErrors的使用方法(mode=On|Off|RemoteOnly)
    https://cloud.tencent.com/developer/article/21038021)customErrors中的mode“On”始终显示自定义(友好的)信息。“Off”始终显示详细的ASP.NET错误信息。“RemoteOnly”只对不在本地Web服务器上运行的2)customErrors中的defaultRedirect使之指向自定义错误页的URL......
  • 【已解决】MySQL连接错误 ERROR 1129 (00000): Host ” is blocked because of many c
     问题连接MySQL 报错 ERROR1129(00000):Host”isblockedbecauseofmanyconnectionerrors原因同一个IP在短时间内产生太多终端的数据库连接(超过mysql数据库max_connection_errors设置),导致被阻塞。在系统变量:max_connect_errors设置了允许中断的次数,超过了这个次数(或者......