猿问

尝试在 go 中创建可重用的附加结构

我正在尝试在 go 中创建可重用的方法/函数,以将值结构推送到结构中的另一个切片/数组


我试过这样



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


在这种情况下,我有一个用于验证某些内容的功能,然后我尝试在 ErrorValidate 上推送错误消息,但我继续在条件中使用追加,我试图减少它,但出现了上面的错误


慕后森
浏览 87回答 1
1回答

潇湘沐

您的代码中有几个问题。这个正在生成您的错误(与您的附加无关,或根本与该方法无关):s1 := *ValidateMessage{}这不是有效的语法。你可能是说s1 := &ValidateMessage{}。s1.AddError(&ErrorValidate{"theKey", "string"})您正在尝试将 a 传递*ErrorValidate给需要 a 的函数ErrorValidate。这应该是s1.AddError(ErrorValidate{"theKey", "string"})。
随时随地看视频慕课网APP

相关分类

Go
我要回答