package main
import (
"fmt"
"net"
)
func test() (int, int) {
return 2, 3
}
func main() {
a, b := test()
a, b := test()//编译报错 no new variables on left side of :=
add1 := "0.0.0.0:1234"
add2 := "0.0.0.0:4321"
server1, err := net.Listen("tcp", add1)
defer server1.Close()
server2, err := net.Listen("tcp", add2)//err 编译没报错
if err != nil {
fmt.Println(err.Error())
return
}
defer server2.Close()
}
不知道什么原因
请教
有疑问加站长微信联系(非本文作者)

同学,你是来搞笑的吗。
:=
声明并赋值,你上面已经声明了,不需要再声明类型了,所以用=
就好。而且提示意图很明显 “no new variables on left side of :=” “:=的左边没有新的变量需要赋值” go的错误提示很全面 很精确 很优雅 读懂报错很重要 ~