1. 首页
  2. 主题
  3. Go基础

请教同行们一个关于go方法的问题

930415915 · · 2544 次点击
假设定义一个结构体 ```go type A struct{ } ``` 定义一个方法: ```go func (self *A) SayHi() { fmt.println("你好") } ``` 我想问方法第一个括号里加 `*` 与不加 `*` 有什么区别。测试好像没什么区别。请高手指点下。 我是在网上看到下面这句话才想问的,我不太懂。 ``` 对于接口的执行机制: 1.T仅拥有属于T类型的方法集,而*T则同时拥有(T+*T)方法集 2.基于T实现方法,表示同时实现了interface和interface(*T)接口 3.基于*T实现方法,那就只能是对interface(*T)实现接口 ```
说起来话长,我只能说,你这里没区别。先看看基础知识吧!
#1
更多评论
简单的说, 如果这个方法要改变self ,请用指针,如果不改变的话, 两者都可以
#2
我是在网上看到下面这句话才想问的,例子我也举不出。您看看 对于接口的执行机制: 1.T仅拥有属于T类型的方法集,而*T则同时拥有(T+*T)方法集 2.基于T实现方法,表示同时实现了interface和interface(*T)接口 3.基于*T实现方法,那就只能是对interface(*T)实现接口
#3

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中