Golang:预期标识符位于 :=syntax 左侧

Ash*_*har 7 go

我是 Golang 新手,在尝试实现一个简单的客户端服务器模型时,我在 :=syntax 的左侧收到此错误预期标识符:

kvs.listener, err := net.Listen("tcp", ":9999")
Run Code Online (Sandbox Code Playgroud)

具体来说,错误是在kvs下。

我不知道为什么会发生这种情况。如果我用一个简单的 ln (即没有结构)替换 kvs.listener ,错误就会消失。有人可以帮我解决这个问题吗?

谢谢!

icz*_*cza 14

:=是一个简短的变量声明。顾名思义,就是声明变量。

kvs.listener不是您想要声明的新变量的标识符,它可能是现有变量(或某个包的变量)的字段。

当您不需要新变量时,请使用简单的赋值

kvs.listener, err = net.Listen("tcp", ":9999")
Run Code Online (Sandbox Code Playgroud)

如果err变量尚不存在,则必须事先声明它:

var err error
kvs.listener, err = net.Listen("tcp", ":9999")
Run Code Online (Sandbox Code Playgroud)