初级会员
  • 第 14114 位会员
  • XinhongWu
  • Clark Wu
  • 2017-11-08 05:39:25
  • Offline
  • 19 35

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • ###### 感谢分享 %v %+v %t %p 这几个字符终于知道是啥含义了。
  • **感谢分享**。 <br> 根据Duck Type的含义:“if it looks like a duck and quacks like a duck, it’s a duck”。 <br>如何实现这个“look like”,靠的是interface。 <br>如果一个struct实现了一个interface,那么可以将这个struct传递到这个interface的形参 <br> 换言之,将一个struct赋值给一个interface,则表示其实现了这个interface的功能。
  • 补充一条。 go test文件中,还可以增加benchmark用例。 差别在于:benchmark用例必须以Benchmark开头,且在运行时一定要加-bench参数,例如: go test -bench=. go test只会运行Test开头的用例。 TestMain(m *testing.M) 是一个总管初始化入口,可以将数据库,网络等一些初始化操作放置到这里。 Benchmark测试用例需要保证其执行能在一个稳态上,否则可能b.N为了适应变化,不断调整N值,导致无法运行完成。
  • 学习了,正好今天遇到类似的问题。 interface类型 . (需要转换的类型), 注意中间的点号,在进行类型转换前,最好先进行类型的判别: func checkType(v1, v2 interface{}) error { if reflect.TypeOf(v1) != reflect.TypeOf(v2) { return errors.New("Types not ok") } return nil } 这样会安全一些。
  • #3 @superwen 谢谢提醒。 https://studygolang.com/articles/12680 这篇文章中讲到Go使用组合来实现类似继承的特性。 在struct中包含的struct,有点类似于struct继承于另外的父struct。