【发布时间】:2016-01-25 19:02:55
【问题描述】:
我来自没有明确指针的语言,所以我并不真正理解它们存在的意义(没有双关语)。
问题在于,大多数时候我不知道为什么要传递指向函数的指针。我确实明白,当你传入一个指针时,对变量的修改会在任何地方对值进行,但有什么意义呢?为什么不直接修改值并返回结果?
例如,http.HandlerFunc 是一个接收 http.ResponseWriter 和 *http.Request 作为参数的函数。我读过接口实际上是指针(对吗?),但我没有得到的是,为什么?
为什么我得到一个作家的指针?我没有修改它,我只是写信给它。而且,为什么我会得到一个指向请求的指针?我正在做request.FormValue()之类的事情。
通过这些示例,我在这里试图确定的问题是“我什么时候需要传入指针?”
我现在这样做的方法是编写我的代码,尝试编译它,修复那些说我必须通过添加一个&符号和星号来传递指针的错误,直到错误通过。但是,我觉得这种半知半解的指针概念很快就会在不久的将来咬我一口。
【问题讨论】:
-
接口实现使用指针,但接口本身不是指针。