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

尝试在 golang 中用结构和方法填充切片

尝试在 golang 中用结构和方法填充切片

Go
catspeake 2022-11-23 20:39:48
我想创建一个movie具有属性title和genre数据类型的结构string,然后是数据类型,duration然后 创建一个名称为将数据对象从结构添加到切片的函数,然后显示数据:yearintegeraddDataFilmdataFilm这是我的代码:type movie struct {    title, genre   string    duration, year int}func (m movie) addDataFilm(title string, genre string, duration int, year int, dataFilm *[]string) {    var d = strconv.Itoa(m.duration)    var y = strconv.Itoa(m.year)    *dataFilm = append(*dataFilm, m.title, m.genre, d, y)}func main(){        var dataFim = []string{}    var dd = movie{}    dd.addDataFilm("LOTR", "action", 120, 1999, &dataFim)    dd.addDataFilm("Avanger", "action", 120, 2004, &dataFim)    dd.addDataFilm("Spiderman", "action", 120, 2004, &dataFim)    dd.addDataFilm("Juon", "horror", 120, 2004, &dataFim)    fmt.Println(dataFim)}我得到的只是:任何帮助将不胜感激。先感谢您
查看完整描述

2 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

创建电影片段。 将每部电影附加到切片。要打印,请覆盖切片并打印每部电影。

var movies []*movie

movies = append(movies, &movie{"LOTR", "action", 120, 1999})

movies = append(movies, &movie{"Avanger", "action", 120, 2004})

movies = append(movies, &movie{"Spiderman", "action", 120, 2004})

movies = append(movies, &movie{"Juon", "horror", 120, 2004})

for i, m := range movies {

    fmt.Printf("%d. Title: %s\n   Genre: %s\n   Duration: %d\n   Year: %d\n\n", i+1, m.title, m.genre, m.duration, m.year)

}


逻辑可以包含在一个类型中:


// dataFilms stores data for multiple films.

type dataFilms []*movie


func (df *dataFilms) add(title string, genre string, duration int, year int) {

    *df = append(*df, &movie{title, genre, duration, year})

}


func (df dataFilms) print() {

    for i, m := range df {

        fmt.Printf("%d. Title: %s\n   Genre: %s\n   Duration: %d\n   Year: %d\n\n", i+1, m.title, m.genre, m.duration, m.year)

    }

}


func main() {

    var df dataFilms

    df.add("LOTR", "action", 120, 1999)

    df.add("Avanger", "action", 120, 2004)

    df.add("Spiderman", "action", 120, 2004)

    df.add("Juon", "horror", 120, 2004)

    df.print()

}


查看完整回答
反对 回复 2022-11-23
?
交互式爱情

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

  1. 创建结构新的电影数组

  2. 创建全局变量 Movies 来保存数据

  3. 在 func main 上调用变量

type Movie struct {

    Title    string

    Genre    string

    Duration int

    Year     int

}


type Movies []Movie


var dest Movies


func addDataFilm(title string, genre string, duration int, year int) Movies {


    dest = append(dest, Movie{

        Title:    title,

        Genre:    genre,

        Duration: duration,

        Year:     year,

    })


    return dest

}


func TestNumberToAlphabet(t *testing.T) {

    addDataFilm("LOTR", "action", 120, 1999)

    addDataFilm("Avanger", "action", 120, 2004)

    addDataFilm("Spiderman", "action", 120, 2004)

    addDataFilm("Juon", "horror", 120, 2004)


    fmt.Println(dest)


}


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

添加回答

举报

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