go - 尝试在go中创建可重用的追加到struct

标签 go

我正在尝试使可重用的方法/ func进入将值结构推到结构中的另一个 slice /数组

我尝试过这样


import (
    "fmt"
)


type ErrorValidate struct {
    ErrorKey string 
    Message string  
}

type ValidateMessage struct {
     ErrorMessage []*ErrorValidate
}

func (v *ValidateMessage) AddError(err ErrorValidate) {
    v.ErrorMessage = append(v.ErrorMessage, &err)
}

func main() {
    s1 := *ValidateMessage{}
    s1.AddError(&ErrorValidate{"theKey", "string"})
    fmt.Println(*s1)
}

错误invalid indirect of ValidateMessage literal (type ValidateMessage)
链接这里https://play.golang.org/p/VjdsiZQLroF

在那种情况下,我有一个Func用于Validate某些东西,然后我尝试在ErrorValidate上推送错误消息,但是我在条件中继续使用append,我试图使其减少但出现了上面的错误

最佳答案

您的代码中有几个问题。这是在生成您的错误(与您的append或该方法完全无关):

s1 := *ValidateMessage{}

这是无效的语法。您可能是s1 := &ValidateMessage{}
s1.AddError(&ErrorValidate{"theKey", "string"})

您正在尝试将*ErrorValidate传递给采用ErrorValidate的函数。这应该是s1.AddError(ErrorValidate{"theKey", "string"})

关于go - 尝试在go中创建可重用的追加到struct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58594297/

相关文章:

windows - 在 Windows 上使用 gcc 进行构建时出错

google-app-engine - 如何在 Golang 中创建和渲染基本模板?

amazon-web-services - 通过 Golang SDK 将大文件发送到 Amazon S3 时如何使用更少的内存?

http - 如何使用 Go http 包提供共享结构?

rest - REST api设计的GET方法中的HTTP状态码

转到教程选择语句

json - 编码 json.RawMessage 返回 base64 编码的字符串

google-app-engine - 有没有人能够获得Go Hello World快速入门演示,使其适用于Google App Engine托管的VM?

http - 检查空请求正文的最佳方法是什么?

go - 有没有我们会求助于进程而不是 goroutine 的情况?