我是Golang的新手,在試圖實作一個簡單的客戶服務器模型時,我得到了這樣的錯誤,預期識別符號在:=syntax左側的行:
kvs.listener, err := net.Listen("tcp"/span>, ":9999"/span>)
具體來說,錯誤是在kvs下發生的。
我不確定為什么會發生這種情況。如果我用一個簡單的 ln 替換 kvs.listener(即沒有結構),錯誤就會消失。誰能幫我解決這個問題呢?
代碼:
type keyValueServer struct {
totalClients int
聽眾 net.Listener
}
func New() KeyValueServer {
服務器 := &keyValueServer{
totalClients。0,
}
return server
}
title">Start(port int) error {
kvs.listener, err := net.Listen("tcp", " :9999")
if err != nil {
fmt.Printf("無法監聽埠9999:%s
", err)
return nil
}
go setupConnection(kvs)
}
謝謝!
uj5u.com熱心網友回復:
:=是一個簡短的變數宣告。正如它的名字所說,它是用來宣告變數的。
kvs.listener不是你想宣告的新變數的識別符號,它可能是現有變數(或某個包的變數)的一個欄位。
當你不想要一個新的變數時,使用簡單的assignment:
kvs.listener, err = net.Listen("tcp", " 9999")
如果err變數還不存在,你必須事先宣告它:
var err error
kvs.listener, err = net.Listen("tcp"/span>, ":9999"/span>)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/329382.html
標籤:
