簡體   English   中英

了解gometalinter的警告:conn可以是io.Reader / io.Writer

[英]Understanding gometalinter's warning: conn can be io.Reader/io.Writer

用gometalinter檢查后這部分代碼:

//ListenerButton is hanging listeners for contact button
func ListenerButton(number int, button *ui.Button, conn net.Conn) string {
    button.OnClicked(func(*ui.Button) {
        sliceMembers := []string{login, button.Text()}
        groupName = login + button.Text()
        _, err := conn.Write([]byte(JSONencode(login, "", "",
            0, groupName, 1,
            login, sliceMembers, " ", " ", "",
            " ", " ", " ", true, " ", "CreateGroup")))
        if err != nil {
            log.Println(err)
        }
        fmt.Println(login, groupName, number, "graphic 131")
    })
    return groupName
}

我有這個警告:

warning: conn can be io.Writer (interfacer)

它是什么意思以及我如何解決它?

這意味着ListenerButton函數僅使用connWrite方法。 通過將類型從net.Connio.Writer ,可以使您的函數使用更多的io.Writer實現。 在實現API時,應盡可能減少接口。

例如,通過該更改,您可以使用io.MultiWriter將調試信息寫入stderr以及網絡連接:

func ListenerButton(number int, button *ui.Button, conn io.Writer) string {
    // ...
}

ListenerButton(number, button, io.MultiWriter(os.Stderr, networkConn))

暫無
暫無

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

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