这可能不是一个新问题,但我在任何地方都找不到答案.

使用这段代码,在循环中包含函数调用的行上,:==运算符都不起作用.

我有一个用例,其中我需要在for循环外部声明一次大型数组,并在函数中更新,然后传回.但该函数还返回另一个变量,该变量每次都不同,并在该循环中使用.

Go操场链接:1


import "fmt"

func someFunc(names []string) (int, []string) {
    foo := 35 // Just for the example
    names = append(names, "Bob")
    return foo, names
}

func main() {

    names := []string{"Fred", "Mary"}

    for i := 0; i < 10; i++ {
        newVariable, names := someFunc(names) // This line is the problem
        fmt.Println(newVariable)
    }

}

我如何重构它以使其按预期工作?

推荐答案

在:=之前声明newVariable怎么样?

for i := 0; i < 10; i++ {
    var newVariable int
    newVariable, names = someFunc(names)
    fmt.Println(newVariable)
}

Go相关问答推荐

难以为多个平台添加Go Bazel构建选项

../golang/pkg/mod/github.com/wmentor/lemmas@v0.0.6/processor.go:72:9:未定义:令牌.进程

使用一元或服务器流将切片从GRPC服务器返回到客户端

在Golang中Mergesort的递归/并行实现中出现死锁

如何在v2 Go SDK中使用KeyConditionExpression查询AWS DynamoDb?

Go:拆分一个由逗号分隔的键/值对字符串,并在给定的键/价值对中嵌入可能的逗号

如何使用 Go 连接到非默认 firestore 数据库?

我怎样才能改进这个嵌套逻辑以使其正常工作并提高性能

在 Go 中解组编号的 XML 标签

杜松子wine 和中间件

Go Programming Language书上的例子server2错了吗?

GOLANG:为什么 SetDeadline/SetReadDeadline/SetWriteDeadline 在使用 os.File.Fd() 时对文件不起作用?

如何使用 go-playground/validator 编写 snake case 绑定标签?

grpc-gateway:重定向与定义不匹配(原始文件)

具有未导出字段的 struct 类型之间的转换

如何使用特定的 Go 版本运行 govulncheck?

io.Pipe 使用困难

将接口方法的参数限制为几个允许的 struct ?

Golang 使用 docker 将敏感数据作为参数传递

Go 赋值涉及到自定义类型的指针