摘要:
go里边很多地方都体现了组合优于继承,比如接口中声明匿名接口则此接口默认包含匿名接口所有方法 阅读全文
摘要:
go不像其他语言一样显示的实现接口,反之当其他非接口实现了某接口的所有方法则他就是实现了这个接口; 即当你长得像鸭子,游泳像鸭子,叫声像鸭子那么你就是鸭子; 阅读全文
摘要:
go里没有private public关键字区分公有私有,通过字段首字符来规定 首字母大写公有,反之私有 阅读全文
摘要:
GO 你知道吗 函数的接收者,效果在同一个go文件中方法名相同,返回值相同,接收者不同 这个接收者机制类似于隐式多态 阅读全文
摘要:
GO 你知道吗 当一个字段是匿名字段且类型是struct时则,次字段所有字段都会包含到当前struct中 这是组合优于继承的体现 阅读全文
摘要:
你知道吗 由于长度也是数组类型的一部分,因此[3]int 与[4]int 是不同类型; c:=[...]int{4,5,6} 根据数组元素个数计算长度; 阅读全文
摘要:
|对比项|继承|组合| |--|--|--| |类型|白箱复用|黑箱复用| |封装|暴露了父类实现,破坏了封装|可以使用依赖注入保护封装| |动静态|静态,编译时就已经确定|动态,运行时 可以延后具体的实现类| 总结 固定场景可以考虑使用继承,其他场景使用组合更灵活 参考 阅读全文
摘要:
你知道吗 go是这样声明变量的 var vname vtype = vvalue; 然后这样很罗嗦 go 增加了一个语法糖 := ,以后你就可以 vname := vvalue; 这方赋值了,但也有一个限制就是只能在方法体内使用; 所以就形成全局变量使用var 声明;局部变量使用:= 阅读全文
摘要:
你知道吗 任何一个GO运行程序都必定包含一个package main 里边包含一个 func main方法,这个main方法既没有参数也没有返回值 阅读全文
摘要:
提问 如何使用log4net 回答 配置 using log4net; using log4net.Config; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; na 阅读全文