我讀了exec.Start的代碼,有一部分讓我困惑。 (* Cmd).stdin/out/err在[] F中,(* Cmd).stdXX的含義是什麼?exec.start中的這部分代碼是什麼意思?
291 type F func(*Cmd) (*os.File, error)
292 for _, setupFd := range []F{(*Cmd).stdin, (*Cmd).stdout, (*Cmd).stderr} {
293 fd, err := setupFd(c)
294 if err != nil {
295 c.closeDescriptors(c.closeAfterStart)
296 c.closeDescriptors(c.closeAfterWait)
297 return err
298 }
299 c.childFiles = append(c.childFiles, fd)
300 }
解引用'Cmd',它是一個指針,這樣'(* Cmd)'是一個對象並且調用該對象的一個方法。死簡單,而不是一個答案。 – Volker
我不認爲這很簡單:'Cmd'是一個類型,而不是一個變量名。我錯了嗎? – julienc