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

go - 如何将类型作为函数的参数传递?

go - 如何将类型作为函数的参数传递?

Go
慕的地6264312 2022-07-25 11:00:28
所以我有一个结构type Book struct {    Name   string    Author string}这是我使用这个结构时的代码func Add(obj string) {    res, err := json.Marshal(obj)    if err != nil {        fmt.Println(err)    }    fmt.Println(string(res))}func main() {    Open("./example.json")    book := Book{"test", "me"}    fmt.Println(reflect.TypeOf(book).String())    Add(book)}现在我想做的是在函数中传递该书对象或变量,Add当我尝试这样做时,它给了我一个错误。cannot use book (type Book) as type string in argument to Add那么如何解决它以及如何book在函数中将对象作为参数传递Add?
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

您的结构Book现在就像它自己的数据类型一样。如果您只想在函数中接受这种数据类型Add,则需要替换string为Book.


所以代码看起来像这样:


package main


import "encoding/json"


type Book struct {

    Name   string

    Author string

}


func Add(obj Book) {

    res, err := json.Marshal(obj)

    if err != nil {

        fmt.Println(err)

    }

    fmt.Println(string(res))

}


func main() {

    Open("./example.json")

    book := Book{"test", "me"}

    fmt.Println(reflect.TypeOf(book).String())

    Add(book)

}


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

添加回答

举报

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