golang调用方法的这两种使用的区别

哈哈gogo 2021-01-07 10:23:17
new(controller.ConfigController).Router(router)
controller.ConfigController{}.Router(router)
这两种有什么区别吗,用new后再调用方法,和下面这种有啥区别吗
...全文
282 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ysm_515 2021-01-15
  • 打赏
  • 举报
回复
一个T类型的值可以调用*T类型声明的方法,但是仅当此T的值是可寻址的情况。反过来,一个*T类型的值可以调用为类型T声明的方法。对于不可寻址来说就是字符串中的字节、map对象中的元素、常量、包级别的函数等。
qybao 2021-01-07
  • 打赏
  • 举报
回复
new出来的是指针类型,也就是 new(controller.ConfigController) 等效于 &controller.ConfigController{}
而controller.ConfigController{}只是单纯的struct类型
在你这个例子的用法没区别,但是在一些方法调用里,参数要求是指针类型还是结构体类型,就有区别了。

2,190

社区成员

发帖
与我相关
我的任务
社区描述
go语言学习与交流版
社区管理员
  • go语言社区
  • Freeman Z
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧