GjriFeu
V2EX  ›  程序员

Golang 语法问题

By GjriFeu at 2016 年 11 月 9 日 · 3650 次点击

func (c *Client) Do(req *Request) (resp *Response, err error)

( c *Client )加在这里是什么意思啊 // net/http 包中的方法 初学 Go ,望各位指导

第 1 条附言  ·  2016 年 11 月 14 日
- -
go 中一个文件想要引用另一个文件中的函数怎么写
18 条回复  •  2016-11-14 17:32:50 +08:00
JoshuaJin
   1
JoshuaJin  
   2016 年 11 月 9 日
函数定义类型, 即这个函数是定义在某个类型上的。如你举的这个例子,可以使用如下代码调用这个函数:
var c *Client
.......
c.Do(req, resp)
goophy
   2
goophy  
   2016 年 11 月 9 日
Do 是 *Client 实例的方法。
```golang
c := new(Client)
//or
c := &Client{}

c.Do(...)
```
kiwi95
   4
kiwi95  
   2016 年 11 月 9 日
这就是 golang 的 receiver 啊,为类型定义方法,或者说绑定方法 https://tour.golang.org/methods/3
GjriFeu
   5
GjriFeu  
OP
   2016 年 11 月 9 日
@JoshuaJin
@goophy
奥懂了谢谢
jerray
   6
jerray  
   2016 年 11 月 9 日
我觉得写成这样你就明白了:

```golang
func Do(c *Client, req *Request) (resp *Response, err error)
```
GjriFeu
   7
GjriFeu  
OP
   2016 年 11 月 9 日
@kiwi95 这个解释满分
GjriFeu
   8
GjriFeu  
OP
   2016 年 11 月 9 日
@jerray 像 C++的 this 指针么。。
palmers
   9
palmers  
   2016 年 11 月 9 日
golang 的语法好新奇呀
GjriFeu
   10
GjriFeu  
OP
   2016 年 11 月 9 日
@palmers 看着有点别扭
pathletboy
   11
pathletboy  
   2016 年 11 月 9 日
@GjriFeu 从 c++角度看,本质就是 this 指针,可以自定义名。
palmers
   12
palmers  
   2016 年 11 月 9 日
@GjriFeu 恩恩 尤其是从 javascript java python 这些语言的角度看 真的很别扭
janxin
   13
janxin  
   2016 年 11 月 9 日 via iPhone
@palmers golamg 没有类
maomaomao001
   14
maomaomao001  
   2016 年 11 月 9 日 via Android
这写法~~怎么感觉比 C 还难
mingyun
   15
mingyun  
   2016 年 11 月 9 日
初学 golang 也感觉这语言好怪异
bluefalconjun
   16
bluefalconjun  
   2016 年 11 月 10 日
这是 method 扩展可以加入 Interface
这部分虽然有点绕... 但是很有用啊
beiping96
   17
beiping96  
   2016 年 11 月 10 日
GjriFeu
   18
GjriFeu  
OP
   2016 年 11 月 14 日
up.
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
© 2026 V2EX · 40ms · 3.9.8.5