为了账号安全,请及时绑定邮箱和手机立即绑定

在 Golang 中为现有类型添加方法:如何重写返回值的类型

在 Golang 中为现有类型添加方法:如何重写返回值的类型

Go
湖上湖 2021-10-25 20:04:41
我想用我自己的方法扩展现有的goquery.Selection类型,并能够从包的选择器中使用它。我知道我无法“修补”现有方法——我需要创建一个新方法。但是如何强制现有的包函数使用我的新类型?我通常缺少什么,或者没有“好的”方法可以做到这一点,最好使用函数?package mainimport (    "fmt"    "github.com/PuerkitoBio/goquery")type customSelection goquery.Selectionfunc (s *customSelection) CustomMethod() int {    return 1}doc.Find("*").Each(func(i int, s *goquery.Selection) {  fmt.Println(s.CustomMethod())  // does not works since its still "goquery.Selection"  // how do I can get a result with customSelection type here? })
查看完整描述

2 回答

?
大话西游666

TA贡献1817条经验 获得超14个赞

您可以使用函数代替方法:


func customFunc(s *goquery.Selection) int {

    return 1

}


...


fmt.Println(customFunc(s)) 


查看完整回答
反对 回复 2021-10-25
  • 2 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信