2019独角兽企业重金招聘Python工程师标准>>>

Errors包

查看golang的errors包你会发现其源码是:

func New(text string) error {return &errorString{text}
}// errorString is a trivial implementation of error.
type errorString struct {s string
}func (e *errorString) Error() string {return e.s
}

返回了一个实现error接口的errorString类型的指针。 那为啥不是返回errorString的值类型??

你可能会说:因为只有 `*errorString` 才有 `Error` 方法啊...

错, 而且打错特错。

正解:

我们在调用errors.New("")来返回一个错误时, 可以通过比较指针,来比较error是否相等, 实际上就是控制相同的错误我们只创建一个error对象。否则对象复制一下,在比较就是false了。

而且指针才会与nil相比较, 如果是字符串"" 虽然错误内容为空,但是还是有错误的。

转载于:https://my.oschina.net/90design/blog/1797132

Golang 返回errorString,而不是errorString的原因相关推荐

  1. mysql count 返回0_如何在MySQL中使用COUNT時返回0而不是null

    我正在使用此查詢返回存儲在$ sTable中的歌曲列表以及存儲在$ sTable2中的總項目的COUNT.如何在MySQL中使用COUNT時返回0而不是null /* * SQL queries * ...

  2. Hibernate JPA-原生查询返回BigIntegers而不是long

    文章目录 Hibernate返回BigIntegers而不是long Hibernate返回BigIntegers而不是long Hibernate返回BigIntegers而不是long 参考URL ...

  3. mybatis 一对多映射返回的值为空的原因

    使用resultMap映射有关联对象的java对象,返回结果全部为空 问题原因:property和column属性填反了 正确填写: 这样结果就正常了

  4. Android实现点击返回键返回桌面而不是退出程序

    有时候我们的应用我们希望他点击一次返回键的时候不是退出应用而是返回到桌面,比如像QQ和微信等聊天软件,在主界面点击返回键的时候不是退出应用而是返回到桌面,那么怎么能够实现这种需求呢?其实也很简单,只需 ...

  5. Spring Boot返回的数据格式是XML 而不是JSON之原因探求的和解决

    问题: 使用 @RestController 注解的控制器类, 期望返回的数据格式是JSON ,但是实际返回的确是XML 格式的. 如下图: 发生场景: 在Spring Boot项目创建的初期是正常的 ...

  6. Jquery ajax 返回string类型加result.d原因

    啥叫异步,啥叫Ajax.咱不谈啥XMLHTTPRequest.通俗讲异步就是前台页面javascript能调用后台方法.这样就达到了无刷新.所谓的Ajax.这里我们讲二种方法 方法一:(微软有自带Aj ...

  7. golang 返回值报错 cannot use nil as type string in return argument

    在刚刚开始使用golang写代码的时候,经常会放错.给一个变量放回一个nil,这个通常编译的时候不会报错,但是运行是时候会报cannot use nil as type string in retur ...

  8. python 读png的值变了_python – 为什么scipy.ndimage.io.imread返回PngImageFile,而不是值数组...

    您可能有一个不完整的Python成像库(PIL)安装,SciPy依赖它来读取图像. PIL依赖于libjpeg加载JPEG图像和libz来加载PNG图像,但是可以在没有任何图像的情况下安装(在这种情况 ...

  9. python 二维数组元素返回二维坐标_python – 从二维数组中返回生成器而不是位置列表...

    我昨天正在进行一场游戏,我必须遍历一个二维阵列并找到标记为"d"的任何单元格的位置(其中单元格表示为" – "表示空白,"d"表示为脏). ...

  10. java返回object的类型_为什么标准java类的clone()返回Object而不是实际的类型

    在 java中允许指定函数返回的类型,例如下面的代码 public class Test { static class Dad { Dad me() { return this; } } static ...

最新文章

  1. java技术培训之File类中常用的构造方法
  2. 5月书讯:藏一个愿望等风来
  3. checkbox全选衍生问题讨论
  4. 【天池赛事】零基础入门语义分割-地表建筑物识别 Task6:分割模型模型集成
  5. 王者荣耀10连胜,竟然也有人不相信,猎游大神带菜鸡玩家10连胜
  6. 西北大学计算机考试,西北大学计算机技术
  7. Nginx+Php-fpm+MySQL+Redis源代码编译安装指南
  8. java中的等待_Java中更好的等待语法
  9. springboot 2.x 使用定时任务执行多次问题
  10. Linux配置Anaconda3环境变量的问题
  11. Spring Boot Restful API 构建实战!
  12. WPF如何得到一个在用户控件内部的元素的坐标位置
  13. ca盘显示无证书_ca证书提示没有正确的安装驱动程序
  14. pip安装faiss
  15. 西门子梯形图转换C语言,梯形图和指令表相互转换
  16. 03—C语言基本语句(下)
  17. 裸机服务器装系统步骤,组装裸机如何装系统?
  18. 帝国cms栏目添加二级域名
  19. 《ESP32》Adafruit_GFX、u8g2驱动ssd1306
  20. 广西免考职称英语计算机,2016年广西职称英语免考条件

热门文章

  1. 博客也是网络赚钱的有利工具
  2. Tensorflow:安装和配置
  3. C#中public函数的用法_python中的lambda函数用法
  4. python distance matrix_机器学习中的距离盘点
  5. Ros安装过程及sudo rosdep init失败解决方法
  6. 蓝桥杯2017年第八届C/C++省赛C组第二题-兴趣小组
  7. SQL Server-【知识与实战II】条件查询、比较运算符查询、模糊查询、枚举查询、范围查询、空值查询、多重条件查询
  8. L1-031 到底是不是太胖了 (10 分)—团体程序设计天梯赛
  9. Django学习笔记二
  10. 【转】Swig 使用指南