登录
首页 >  Golang >  Go问答

追踪 Go 函数返回值不匹配的方法

来源:stackoverflow

时间:2024-03-14 17:27:24 466浏览 收藏

一分耕耘,一分收获!既然都打开这篇《追踪 Go 函数返回值不匹配的方法》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

如何在 golang 中追踪函数返回不匹配的情况?在两种不同的构建环境中我看到了差异。这两种情况都应该是 visual studio code 远程到 linux 机器,在模块模式下使用 go 1.12。损坏的情况是我使用 golang:1.12 docker 映像来驱动构建。下面是我看到问题的地方的简化。

因此,对于此示例,源自 https://github.com/satori/go.uuid:

package main

import (
    "fmt"

    uuid "github.com/satori/go.uuid"
)

func main() {
    // or error handling
    u2, err := uuid.newv4()
    if err != nil {
        fmt.printf("something went wrong: %s", err)
        return
    }
    fmt.printf("uuidv4: %s\n", u2)
}

意外的构建错误是:

./main.go:11:5 assignment mismatch: 2 variables but uuid.newv4() returns 1 values

在我遇到此问题的环境中,在 visual studio code 中,当我将鼠标悬停在对 uuid.newv4() 的调用上时,我看到:

func uuid.newv4() (uuid.uuid, error)

uuid.newv4 on pkg.go.dev

newv4 returns random generated uuid.

并将鼠标悬停在 uuid 上显示:

package uuid ("github.com/satori/go.uuid")

uuid on pkg.go.dev

我可能会切换到不同的 uuid 包来解决这个问题 - 但我想更好地了解如何解决这个问题。


解决方案


我猜问题出在不同的 github.com/satori/go.uuid 模块版本中。您可以看到,NewV4 函数签名在 latest version v1.2.0 中更新为 NewV4()(uuid.UUID,错误)。在此之前它是 was func NewV4() UUID

然后解决这个问题中的特定版本:

How to point Go module dependency in go.mod to a latest commit in a repo?

今天关于《追踪 Go 函数返回值不匹配的方法》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>