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

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

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

Go
犯罪嫌疑人X 2022-08-01 10:45:31
所以我有一个结构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)}现在我想做的是在函数中传递该书对象或变量,当我尝试执行此操作时,它会给我一个错误。Addcannot use book (type Book) as type string in argument to Add那么我如何解决它,以及如何在函数中将对象作为参数传递?bookAdd
查看完整描述

1 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

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


因此,代码将如下所示:


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-08-01
  • 1 回答
  • 0 关注
  • 141 浏览
慕课专栏
更多

添加回答

举报

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