说我在main.go
package main
import "foobar"
func moo() {
foobar.Boom("!")
}
func main() {
moo()
}
如何删除Boom
并确保使用正确的参数调用它?
答案 0 :(得分:1)
Go-way将使用界面。即使你无法改变foobar包装。
1)创建一个婴儿潮一代接口
type Boomer interface{
Boom(string)
}
2)改变moo()接受婴儿潮一代
func moo(b Boomer) {
b.Boom("!")
}
3)使用foobar
添加变量对于操场我使用以下构造。但是使用extern包你可以使用foobar.Boom()而不是Println
type foobar struct{}
func (fb foobar) Boom(s string) {
fmt.Println(s)
}
var f Boomer = foobar{}
https://play.golang.org/p/200WIok1pL
4)在测试中,您实施了一个测试人员
type testboomer struct{
boomstring string
}
func (tb *testboomer) Boom(s string) {
tb.boomstring = s
}
调用moo()函数后,testboomer.boomstring显示值。