为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
缥缈止盈 2022-11-08 10:12:21
您好现在我正在尝试将 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")}
查看完整描述

1 回答

?
米脂

TA贡献1836条经验 获得超3个赞

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。有关介绍和详细信息,请参阅博客文章:数组、切片(和字符串):“附加”的机制


查看完整回答
反对 回复 2022-11-08
  • 1 回答
  • 0 关注
  • 73 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信