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

快捷建站专家视频网站建设服务

快捷建站专家,视频网站建设服务,wordpress 文章幻灯片,国家网站备案golang 函数式编程库samber/mo使用: Result 如果您不了解samber/mo库, 请先阅读上一篇 Option , 这篇讲述结构体Result的使用 Result和Option区别 samber/mo有了Option, 为什么还有Result呢? 我们先看看定义: Opt…

golang 函数式编程库samber/mo使用: Result

如果您不了解samber/mo库, 请先阅读上一篇 Option , 这篇讲述结构体Result的使用

Result和Option区别

samber/mo有了Option, 为什么还有Result呢? 我们先看看定义:

Option的定义如下:

type Option[T any] struct {isPresent boolvalue     T
}
type Result[T any] struct {isErr boolvalue Terr   error
}

从结构来看, Result除了值外,还有一个error字段,用来存储错误信息。可以看出Option是用来处理可能存在值的情况,而Result是用来处理可能存在错误的情况。

Result的使用

构造函数主要有以下两个:

  • mo.Ok() 包裹一个值,并且表示成功 doc - play
  • mo.Err() 包裹错误 doc - play

示例如下:

package mainimport ("errors""fmt""github.com/samber/mo"
)func divide(a, b int) mo.Result[int] {if b == 0 {return mo.Err[int](errors.New("division by zero"))}return mo.Ok(a / b)
}func main() {divide(6, 3).Match(func(value int) (int, error) {fmt.Println("Result is", value)return value, nil},func(err error) (int, error) {fmt.Println("Error is", err)return 0, err},)
}

和Option一样, Result也有Match方法, 如果Result不是Err,就执行第一个函数;否则执行第二个函数。所以上面的函数输出为

Result is 2

其他构造函数

  • mo.Errf() doc - play
  • mo.TupleToResult() doc - play
  • mo.Try() 执行一个函数,如果没有错误,返回Ok,否则返回Err doc - play

Result类型的方法

和Option类似, Result也提供 Size, Get, MustGet, OrElse, OrEmpty, ForEach, Match, Map, FlatMap方法。

同时, Result还提供了一些特有的方法,比如:

  • .IsOk() 是否是成功 doc - play
  • .IsError() 是否是错误 doc - play
  • .Error() 返回错误信息 doc - play
  • .ToEither() 可以先跳过,转为Either类型, 如果是Ok, 返回Right, 表示成功; 如果是Err, 返回Left, 表示错误 doc - play
  • .MapErr() 如果是Err, 执行一个函数,返回一个新的Result doc - play

下一篇

http://www.yayakq.cn/news/965314/

相关文章:

  • 网站流量站怎么做中国设计师联盟
  • 网站建设维护资质ps联盟网站
  • 一级A做爰片秋欲浓网站小程序定制开发要多少钱
  • 入侵网站怎么做弹出网站建设公司资讯
  • 福建省住房和城乡建设厅官方网站做彩票网站代理违法吗
  • 兴义市住房和城乡建设局网签网站天津公司网站推广
  • 企业网站建立答辩问题国际购物网站有哪些
  • 巨腾网站建设提升学历有什么作用和好处
  • 樟木头做网站做电音的软件的专业下载网站
  • 12306网站如何做解绑深圳学校网站定制设计
  • 专业的大良网站设计汽车网站开发流程
  • 低价网站建设多少钱企业网站功能清单
  • 深圳建站公司设计深业集团园区门户网站建设
  • 网站推广含义访问国外网站很慢
  • 高埗镇做网站漳州网站建设网站制作
  • 外面网站怎么做wordpress3.0
  • asp做的手机网站从事网站建设需要什么资质
  • seo企业推广案例太原百度seo
  • 门头设计网站推荐租赁网站开发
  • 深圳深圳网站开发公司注册资金新规定
  • 网站设计培训哪里好建个网站需要多少钱? 知乎
  • 北京专业网站制作大概费用职场社交网站怎么做
  • 网站搭建流程一同看网页打不开
  • 织梦网站专题页面如何做建筑做网站
  • 做塑胶网站需要什么装修论坛网站有哪些
  • 网站开发多少钱十堰建网站
  • 保定市做网站广西建设职业技术学院青年网站
  • jsp系统网站建设带源代码河北沧州市网络公司
  • 免费开发网站做钢材都有什么网站
  • 苏州网站建设学费网站备案指的是什么