我是 Golang 的新手。我执行了下面的代码。最后我得到了空的人类数组。我应该在func F中做什么?
为了测试(monkeypatch)。我必须遵循调用 origin func 的方式。
package main
import (
"fmt"
)
type Human struct {
Name string
}
type Cat struct {
Name string
}
func F(arr interface{}) {
switch arr.(type) {
case *[]*Human:
arr = &[]*Human{{Name: "abc"}}
arr = arr.(*[]*Human)
case *[]*Cat:
arr = &[]*Cat{{Name: "meow"}}
arr = arr.(*[]*Cat)
}
}
func main() {
var humans []*Human
F(&humans)
fmt.Println(humans)
var cats []*Cat
F(&cats)
fmt.Println(cats)
}
呼如林
慕标琳琳
随时随地看视频慕课网APP
相关分类