当前位置: 首页 > news >正文

天津做胎儿鉴定网站做自动发货网站

天津做胎儿鉴定网站,做自动发货网站,定制微信免费下载,邢台网站网页设计文章目录 前言一、概述二、源码理解包函数NewUnwrapIsAsJoin 结构errorStringerrorString方法Error joinErrorjoinError方法ErrorUnwrap 变量ErrUnsupportederrorType 总结 前言 本文章帮助大家对errors包的理解。 一、概述 errors是Go语言内置的标准库之一#xff0c;用于处… 文章目录 前言一、概述二、源码理解包函数NewUnwrapIsAsJoin 结构errorStringerrorString方法Error joinErrorjoinError方法ErrorUnwrap 变量ErrUnsupportederrorType 总结 前言 本文章帮助大家对errors包的理解。 一、概述 errors是Go语言内置的标准库之一用于处理和表示错误。 二、源码理解 包 package errorsimport errors使用errors时需引入此包。 函数 New func New(text string) error {return errorString{text} }创建并返回一个错误内容为text的错误errorerrorString。 Unwrap func Unwrap(err error) error {u, ok : err.(interface {Unwrap() error})if !ok {return nil}return u.Unwrap() }返回err的拆包结果error。若err没有Unwrap() error方法返回空。 Is func Is(err, target error) bool { /*...*/ }若err错误树中包含匹配target错误的错误则返回true。 重点错误树包含错误本身然后通过Unwrap方法重复地拆包出错误为深度优先的先序遍历。匹配是指相等或者实现了Is(error) bool方法且Is(target)返回true。 注意这里Unwrap方法可能返回error或者[]error。若返回前者对其继续进行比较若返回后者遍历其元素对它们逐个进行比较。只要出现任意一个匹配即可终止比较。 As func As(err error, target any) bool { /*...*/ }若err错误树中包含匹配target错误的错误将target设为该错误返回true。类似Is方法。 重点匹配是指错误具体值可以赋给target或者实现了As(interface{}) bool方法且As(target)返回true。 注意type any interface{}。若err非空且target不是指向实现了error或any接口的类型的非空指针则panic。 Join func Join(errs ...error) error { /*...*/ }将所有errs错误包装成一个错误errorjoinError。若所有错误都是空则返回空。 重点非空结果实现了Unwrap() []error方法错误内容为各错误内容的拼接用换行符拼接。 注意空的错误会被丢弃。 结构 errorString type errorString struct {s string }是error接口的简单实现。s表示错误的内容。 errorString方法 Error func (e *errorString) Error() string {return e.s }实现error接口。返回错误内容。 joinError type joinError struct {errs []error }是error接口的一种实现表示由多个错误拼接的错误。errs表示这多个错误的切片。 joinError方法 Error func (e *joinError) Error() string {var b []bytefor i, err : range e.errs {if i 0 {b append(b, \n)}b append(b, err.Error()...)}return string(b) }实现error接口。返回用换行符拼接的错误的内容。 Unwrap func (e *joinError) Unwrap() []error {return e.errs } 返回此错误的拆包结果[]error。 变量 ErrUnsupported var ErrUnsupported New(unsupported operation)表示操作不支持的错误。 函数、方法不应该返回此错误而应该返回包含一个恰当上下文的错误该上下文满足errors.Is(err, errors.ErrUnsupported)可通过直接包装ErrUnsupported或实现Is方法来实现该错误。 errorType var errorType reflectlite.TypeOf((*error)(nil)).Elem()error元素的类型。 总结 新人源码理解望大家多多指点。
http://www.zqtcl.cn/news/698377/

相关文章:

  • 建设手机网站经验分享网站外链建设实例
  • 乔拓云网站注册外贸个人网站
  • 个人怎么做动漫短视频网站建设银行银监会官方网站
  • 长沙网站seo技术厂家山东济宁网站建设设计
  • 外贸网站制作有哪些做体育的网站
  • 广州哪里有做网站推广最牛的网站建
  • 建设网站用户名是什么原因世界500强企业排名2020
  • 创建网站要找谁手机网站后台源码
  • canvas网站源码网站静态和动态区别
  • 网站建设需要了解哪些方面数据分析工具
  • 求个网站没封的2021网站建设初步课程介绍
  • 沈阳网站前端网站建栏目建那些
  • 经典网站案例江苏省建设厅官网
  • 公司建设网站需要多少钱重庆房产网站建设
  • 鹤岗市建设局网站可信网站认证有用吗
  • 网站注册的账号怎么注销如何百度推广
  • 用wordpress制作网站模板阿里云网站建设合作
  • 金华建设公司网站宝武马钢集团公司招聘网站
  • 万州网站制作公司阳江市网站建设
  • 下载建设网站软件投资公司注册资金多少
  • 如何创建一个论坛网站免费域名解析平台
  • 国外经典手机网站设计单位做网站有哪些
  • 网站备案 优帮云百度提交入口网址截图
  • 广州五羊建设官方网站富阳区住房和城乡建设局网站
  • 网站代理怎么做的wordpress有什么缺点
  • 哪些网站可以做免费外贸Wordpress首图自动切换
  • 建网站几个按钮公司黄页企业名录在哪里查
  • 网站建设类外文翻译游戏开科技软件免费
  • 黄山家居网站建设怎么样济南在线制作网站
  • 东莞电子产品网站建设营销型网站推广方式的论文