golang
已收录文章:14425篇
-
字符串转时间一定要通过 time.ParseInLocation 不能直接用Parse todayZero, _ := time.ParseInLocation("2006-01-02", "2019-01-01 15:22:22" time.Local) 如果用了Parse,二者就会存在8小时时间差!!!! 补充:golang 常用155 收藏
-
jwt jwt的原理和session有点相像,其目的是为了解决rest api中无状态性 因为rest接口,需要权限校验。但是又不能每个请求都把用户名密码传入,因此产生了这个token的方法 流程: 用户访问auth接155 收藏
-
panic是Go中表示程序无法继续执行的机制,可由运行时错误自动触发或手动调用panic()引发;2.常见自动触发场景包括空指针解引用、数组或切片越界、整数除以零及向已关闭channel发送数据。154 收藏
-
Go语言中值类型赋值会进行完整内存复制,导致两个变量拥有独立副本,互不影响;而引用类型赋值仅复制引用,指向同一底层数据。值类型包括基本类型、数组、结构体,赋值开销随数据大小增加,可能影响性能;引用类型如切片、映射、通道、指针等,赋值高效但共享数据。为优化性能,应使用指针传递大型结构体、合理设计结构体字段、返回局部大型结构体时返回指针,并利用引用类型的特性避免不必要的复制。154 收藏
-
使用map[string]interface{}和反射可实现Go语言中JSON动态解析,适用于结构不固定的场景。首先通过json.Unmarshal将JSON解析为map,再利用reflect包动态处理字段类型与赋值,结合tag信息可控制序列化行为。示例包括构建DynamicStruct模拟对象属性访问,支持Get/Set方法及从JSON初始化。尽管灵活性高,但反射性能较低,建议缓存反射结果或在结构稳定时使用静态struct。对于高频场景,可选用mapstructure等第三方库优化解析效率。154 收藏
-
命令模式通过封装请求为对象实现调用者与接收者解耦,支持撤销、队列和扩展,适用于Go语言中的遥控操作、任务队列等场景。154 收藏