[英]How do I pass type as a parameter of function in go?
所以我有一個結構
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)
}
現在我想做的是通過那本書 object 或 function Add
中的變量,當我嘗試這樣做時它給了我一個錯誤。
cannot use book (type Book) as type string in argument to Add
那么我該如何解決它以及如何將book
object 作為參數傳遞給 function Add
?
您的 struct Book
現在就像它自己的數據類型一樣。 如果您只想在Add
function 中接受這種數據類型,則需要將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)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.