https://www.kancloud.cn/kancloud/the-way-to-go/72679



例题

func getMsg() (msg string) {
  reader := bufio.NewReader(os.Stdin)
 
  if err != nil {
    fmt.Println(err.Error())
  }

  return
}

简要概括:

reader 是一个指针,因为bufio.NewReader() 构造函数的接口是  func NewReader(rd io.Reader) *Reader

(*Reader,从这里可以看出)

1. reader := bufio.NewReader(os.Stdin) 的时候创建了一个读取器

2.msg, err := reader.ReadString('\n')
ReadString(delim byte)是一个方法。

读取到delim字符后结束,并且返回error=nil给err。

所以msg得到的是os.Stdin输入的字符串加上('\n')换行。(切记)

最后返回msg,对应函数名称,获得了Msg+('\n')的信息。