如何在 Golang 中的 Array 中加载结构的方法

您好现在我正在尝试将 Java 转换为 Go。


但是我在使用为结构声明的方法时遇到问题。


在将结构放入数组之前,可以加载和使用方法。


将其放入数组后,我无法为其调用方法。


你能检查下面的代码吗?


结果告诉我 dvdCollection.DVD 未定义(类型 [15]*DVD 没有字段或方法 DVD)


type DVD struct {

    name        string

    releaseYear int

    director    string

}


func (d *DVD) AddDVD(name string, releaseYear int, director string) {

    d.name = name

    d.releaseYear = releaseYear

    d.director = director

}


func main() {

    dvdCollection := [15]DVD{}

    dvdCollection.AddDVD("Terminator1", 1984, "James Cameron")

}


缥缈止盈
浏览 74回答 1
1回答

米脂

dvdCollection是数组类型 ( [15]DVD) 的值。该AddDVD()方法是在DVD类型上定义的(更具体地说是*DVD)。您只能调用AddDVD()一个*DVD值。例如:dvdCollection[0].AddDVD("Terminator1", 1984, "James Cameron")// which means (&dvdCollection[0]).AddDVD("Terminator1", 1984, "James Cameron")fmt.Println(dvdCollection[0])这将输出(在Go Playground上尝试):{Terminator1 1984 James Cameron}另请注意,您使用的是数组( [15]DVD)。在 Go 中很少使用数组,您可能想要使用slice。有关介绍和详细信息,请参阅博客文章:数组、切片(和字符串):“附加”的机制
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go