簡體   English   中英

單值上下文中的多值無返回函數

[英]multiple-value in single-value context no return func

我在 Go 中有一個 func,它只是寫入緩沖區。 我沒有在 func 上設置返回類型,所以我不確定為什么會看到這個錯誤。 這是我的代碼:

func Write(buffer *bytes.Buffer, values ...string) {
  for _, val := range values
    _, err := *buffer.WriteString(val)
    if err != nil {
      // print error
    }
  }
  _, err := *buffer.WriteString(" ")
  if err != nil {
    // print error
  }
}

它在我有 buffer.WriteString 的兩行都抱怨。 這讓我相信它與緩沖區上 WriteString 方法的返回類型有關,但我對 Go 的經驗不足,無法確定。

任何幫助,將不勝感激。

編輯:更新代碼。

你不需要取消引用指針來調用 Go 中的方法。 buffer.WriteString之前的*運算符應用於返回值。 要取消引用buffer您需要編寫(*buffer).WriteString ,但這根本不需要:

func Write(buffer *bytes.Buffer, values ...string) {
    for _, val := range values {
        _, err := buffer.WriteString(val)
        if err != nil {
            // print error
        }
    }
    _, err := buffer.WriteString(" ")
    if err != nil {
        // print error
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM