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

我想创建一个movie具有属性titlegenre数据类型的结构string,然后是数据类型,duration然后 创建一个名称为将数据对象从结构添加到切片的函数,然后显示数据:yearintegeraddDataFilmdataFilm

http://img.mukewang.com/637e14a600017e6703110521.jpg

这是我的代码:


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)

}

我得到的只是:

http://img2.mukewang.com/637e14b40001a3cb02210022.jpg

任何帮助将不胜感激。先感谢您



catspeake
浏览 134回答 2
2回答

守候你守候我

创建电影片段。 将每部电影附加到切片。要打印,请覆盖切片并打印每部电影。var movies []*moviemovies = 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 []*moviefunc (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()}

交互式爱情

创建结构新的电影数组创建全局变量 Movies 来保存数据在 func main 上调用变量type Movie struct {    Title    string    Genre    string    Duration int    Year     int}type Movies []Movievar dest Moviesfunc 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)}
打开App,查看更多内容
随时随地看视频慕课网APP