go - 单值上下文中的多值 (go)

标签 go

下面的代码返回错误multiple-value in single-value context。我不明白为什么,因为函数有一个参数(我传递一个空字符串“”)并返回一个字符串和一个错误(我将它分配给 r错误).

package main

import "fmt"

type Some struct{}

func main() {

    cl := Some{}
    r, err := &cl.Start("")
    fmt.Println(r)
}

func (cs *Some) Start(sg string) (string, error) {
    return sg, nil
}

最佳答案

这是一个运算符优先级的东西。 &cl.Start()&(cl.Start()) 相同,这不是您想要的。

使用括号阐明您想要的是(&cl).Start()

或者您可以只使用指针变量。

func main() {
    cl := &Some{}
    r, err := cl.Start("")
    fmt.Println(r)
}

关于go - 单值上下文中的多值 (go),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29866808/

相关文章:

http - http请求中close的使用

go - 如何从结构名称的字符串表示中实例化结构

Gorilla session 存储在 localStorage 中

go - go Kit编译错误

amazon-web-services - 通过 map 内容进行的Dynamodb投影

regex - 如何匹配 golang 正则表达式中的字符或字符串结尾?

http.Client 在编译为 wasm 的 Go 中不起作用

go - Firestore 检索数据并转换为结构

windows - 在 Windows 上安装 PacketBeat

go - make([]string) 和 []string{} 有什么区别