Go函数声明真的不清楚输出是什么

在过去的几天里,我一直试图通过观看gopher的一些视频来加快golang的速度。我很难弄清楚函数声明和返回。我已经读过这 https://www.tutorialspoint.com/go/go_functions.htm

这似乎很简单,但是下面的这个例子让我感到困惑。

例如在毒刺 https://blog.golang.org/generate

type Pill intconst (
    Placebo Pill = iota
    Aspirin
    Ibuprofen
    Paracetamol
    Acetaminophen = Paracetamol
)func (p Pill) String() string

我可以看到,在func中,输入参数是Pill类型的p,然后是String()和字符串?我假设的函数名称是字符串,但为什么输出类型字符串在那之后?

func TestNirmalize(t *testing.T)

func(th *timeHandler)ServeHTTP(w http.ResponseWriter, r*http.Request{


慕勒3428872
浏览 66回答 1
1回答

森林海

p不是输入参数。参数和类型位于函数签名之前的语法意味着该类型具有与其关联的方法集。实际的函数签名是不带任何参数的。此声明意味着不带参数并返回 a 的函数可以在 上调用 ,如下所示:PillString()String()stringtype Pill intPill p fmt.Println(p.String())至于其他函数签名,请注意,指定返回值或方法类型是可选的,因此两个示例都不返回任何内容(即 其他语言)。void这将接受指向类型的指针,并且不返回任何内容:testing.Tfunc TestNirmalize(t *testing.T)我假设你的问题中缺少一个。此方法类似地在类型上定义,接受类型,不返回任何内容。)timeHandlerhttp.ResponseWriter*http.Requestfunc(th *timeHandler)ServeHTTP(w http.ResponseWriter, r*http.Request)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go