在過去的幾天里,我一直試圖通過觀看gopher的一些視頻來加快golang的速度。我很難弄清楚函數聲明和返回。我已經讀過這 https://www.tutorialspoint.com/go/go_functions.htm這似乎很簡單,但是下面的這個例子讓我感到困惑。例如在毒刺 https://blog.golang.org/generatetype 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{
1 回答

森林海
TA貢獻2011條經驗 獲得超2個贊
p
不是輸入參數。參數和類型位于函數簽名之前的語法意味著該類型具有與其關聯的方法集。實際的函數簽名是不帶任何參數的。此聲明意味著不帶參數并返回 a 的函數可以在 上調用 ,如下所示:Pill
String()
String()
string
type Pill int
Pill p fmt.Println(p.String())
至于其他函數簽名,請注意,指定返回值或方法類型是可選的,因此兩個示例都不返回任何內容(即 其他語言)。void
這將接受指向類型的指針,并且不返回任何內容:testing.T
func TestNirmalize(t *testing.T)
我假設你的問題中缺少一個。此方法類似地在類型上定義,接受類型,不返回任何內容。)
timeHandler
http.ResponseWriter
*http.Request
func(th *timeHandler)ServeHTTP(w http.ResponseWriter, r*http.Request)
- 1 回答
- 0 關注
- 74 瀏覽
添加回答
舉報
0/150
提交
取消