golang
已收录文章:14048篇
-
值类型赋值和传参时复制整个数据,如int、struct、数组等,默认存储在栈上,修改副本不影响原变量;引用类型如slice、map、channel仅复制描述符(如指针、长度),共享底层堆内存,修改相互影响;指针通过&取地址实现共享访问,小对象传值更高效,大对象用指针避免开销;选择依据数据大小、共享需求及性能权衡。248 收藏
-
定义自定义错误类型、使用错误包装传递上下文、统一API错误响应格式、建立错误映射转换机制,提升Go项目错误处理的可维护性与健壮性。248 收藏
-
使用Gzip压缩文本类静态资源以减少传输体积;2.为带哈希指纹的文件设置长效缓存,无版本资源使用协商缓存;3.启用HTTPS自动支持HTTP/2实现多路复用;4.通过preload预加载关键资源并结合CDN加速分发。248 收藏
-
使用compress/gzip包可实现数据压缩与解压。1.压缩时用gzip.NewWriter写入数据,必须调用Close()确保完整性;2.解压时用gzip.NewReader读取压缩流,建议deferClose()释放资源;3.可结合bytes.Buffer或文件进行操作,适用于网络传输与文件存储场景。248 收藏
-
问题内容Gin为JSON/XML/HTML渲染提供了易于使用的API.这句话怎么理解呢?正确答案就是返回或者解析直接调用context对应的方法即可。比如:返回json数据,调用c.JSON(200, gin.H{})。247 收藏
-
接口对象的转型有两种方式: 1. 方式一:instance,ok:=接口对象.(实际类型) 如果该接口对象是对应的实际类型,那么instance就是转型之后对象,ok的值为true 配合if...else if...使用 2. 方式二247 收藏