源自自己写的单元测试
var GetApplicationPortVar = func() (int){
return 3000
}
func TestGetApplicationPortVar(t *testing.T) {
savedFun := GetApplicationPortVar
GetApplicationPortVar := func() int {
return 4000
}
defer func() {GetApplicationPortVar = savedFun}()
if GetApplicationPortVar() != 4000 {
t.Error("GetApplicationPortVar() Want 4000, But", GetApplicationPortVar())
}
}
问题一
这个GetApplicationPortVar
应该是指向函数的指针呢 还是是这个函数呢
再看第二个
func GetApplicationPortFun() (int){
return 3000
}
func TestGetApplicationPortFun(t *testing.T) {
savedFun := GetApplicationPortFun
GetApplicationPortFun := func() int {
return 4000
}
defer func() {GetApplicationPortFun = savedFun}()
if GetApplicationPortFun() != 4000 {
t.Error("GetApplicationPortFun() Want 4000, But", GetApplicationPortFun())
}
}
这里的 GetApplicationPortFun
是一个函数名,原来我写的是
GetApplicationPortFun = func() int {
return 4000
}
但是这样编译会报错,所以
问题二
这里的 GetApplicationPortFun
具体是什么呢, 和 GetApplicationPortVar
有什么区别呢
问题三 第二个单元测试有问题吗
问题四
在定义函数的时候,使用GetApplicationPortFun
和 GetApplicationPortVar
两种方式那种比较好呢,为什么呢
谢谢
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.