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

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

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

Go
catspeake 2022-11-23 20:39:48

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

http://img1.sycdn.imooc.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.sycdn.imooc.com/637e14b40001a3cb02210022.jpg

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



查看完整描述

2 回答

?
守候你守候我

TA贡献1514条经验 获得超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贡献1433条经验 获得超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

添加回答

举报

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