Golang中的接口
面向对象编程的三大核心:封装、继承、多态。其中封装和继承通过结构体局部引用或者全局引用,接口体方法局部引用或全局引用实现,多态则是通过定义接口,而接口方法可以在多种结构体中实现而实现。
面向对象编程的三大核心:封装、继承、多态。其中封装和继承通过结构体局部引用或者全局引用,接口体方法局部引用或全局引用实现,多态则是通过定义接口,而接口方法可以在多种结构体中实现而实现。
Golang中的错误处理思想一般是在函数调用结果返回包含一个错误接口error,如果调用成功,则返回nil。
在写RESTful接口时,为了后续逻辑正确,会对传参有一些校验,可能是校验格式,可能是校验范围等,为了方式用户的恶意请求。如果所有的参数都手动校验,代码会变得臃肿不说,还有些工作量。其实,一些HTTP框架本身带有参数校验器,例如Gin框架会使用validator进行参数校验。
Golang中没有对象的概念,一般接口的方法通过载体实现,为了可以整合多个不同的类型,从而有结构体的概念。
命令行参数解析flag包,在编码需要传参的过程会经常用到,将参数传入或者修改某些变量作为配置传入。在实际生产环境中,用到的更多是viper,支持几乎所有类型的配置需求和格式。
unsafe包提供绕过golang的类型安全,可以直接操作变量底层的指针。
在golang中,不同的数据类型占用的内存分块大小不一样,最小单位是byte,符合结构的内存占用根据对应结构内容判断。但是在结构体中,有时候会出现不一样的情况。
ab(Apache Bench)是Apache服务应用服务器自带的性能测试软件,可以对接口实现并发请求的测试。
golang中的container是源码包的container目录中,主要有三个部分:heap、list、ring。
对于时间的操作在编码过程中会经常用到,在golang中有标准库time。