登录
首页 >  Golang >  Go问答

用类型参数替换接口参数有什么好处?

来源:stackoverflow

时间:2024-04-06 10:27:35 451浏览 收藏

本篇文章给大家分享《用类型参数替换接口参数有什么好处?》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

定义一个接口类型来输入参数,如下所示:

func callbytewritergen[w io.bytewriter](w w, bytes []byte) {
  _ = w.writebyte(bytes[0])
}

...通过字典导致额外的指针取消引用(使用 ax 传递):

movq 0x10(ax), dx // <-- extra pointer dereference 
movq 0x18(dx), dx
movzx 0(cx), cx
movq bx, ax
movl cx, bx
call dx

仅使用接口参数可能无法实现哪些好处,如下所示:

func CallByteWriter(w io.ByteWriter, bytes []byte) {
  _ = w.WriteByte(bytes[0])
}

正确答案


接口版本是惯用的,而不是类型参数版本 - 在调用接口的地方使用接口。

请参阅何时使用泛型 blog post 了解更多信息和详细信息,特别是不要用类型参数替换接口类型部分:

今天关于《用类型参数替换接口参数有什么好处?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>