map
hash冲突 hash冲突:map的底层数据结构是数组,当向map中存储一个kv时,通过hash计算得出这个kv应该存储在底层数组的哪个下标,如果在始之前该数组下标已经存在kv(前后两个kv的hash值一样),这时就产生了冲突。 hash冲突解决: 开放定址法:当存储kv产生hash冲突时,就从数组冲突下标往后查找,找到一个空值下...
hash冲突 hash冲突:map的底层数据结构是数组,当向map中存储一个kv时,通过hash计算得出这个kv应该存储在底层数组的哪个下标,如果在始之前该数组下标已经存在kv(前后两个kv的hash值一样),这时就产生了冲突。 hash冲突解决: 开放定址法:当存储kv产生hash冲突时,就从数组冲突下标往后查找,找到一个空值下...
panic 数据结构 type _panic struct { argp unsafe.Pointer arg interface{} // panic 的参数 link *_panic // 链接下一个 panic 结构体 recovered bool // 是否恢复,到此为止? ...
概述 go中通过interface实现鸭子类型(duck typing) 利用interface类型实现多态 数据结构 type:保存变量的类型 data:保存变量的值
定义 官方:是由函数和其相关的引用环境组合而成的实体 闭包和变量逃逸 func incr() func() int { var x int return func() int { x++ return x } } func main() { i := incr() println(i()) // 1 println(i...
是一个轻量级web框架 基于http包 中间件 需要返回gin.HandlerFunc函数,通next一次来执行 项目中用来:token认证,接口权限认证、限流、日志记录 限流:redis记录用户单位时间内的访问次数,超频则拦截 路由 RouterGroup 路由组 content 保存请求上下文信息 提供ShouldBindQuer...
深拷贝 开辟新的内存空间,新旧对象不共享内存 值类型数据赋值:array,struct… 内建函数copy( ) 浅拷贝 复制了指向对象的引用,并没有开辟新的内存地址,新旧对象指向同一个内存地址 引用类型赋值:指针、slice、map…
defer触发时机 包裹着defer语句的函数返回时(先入栈的defer后执行) // 输出结果: // return前执行defer2 // return前执行defer1 func f1() { defer fmt.Println("return前执行defer1") defer ...
CSRF 跨站请求伪造。攻击者伪造正常用户的身份,发送恶意请求。 from表单POST提交,不受浏览器同源策略的限制。 cookie保存认证信息不安全,攻击者容易伪造。 参考:https://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html 跨域 因为有浏览器同源策略的限制,ajax向其他源发送请求,响应会...
封装:定义结构体,定义方法,接收者为该结构体 继承:通过结构体嵌套实现,也可以重写父类方法 多态:定义接口方法,子类实现了接口所定义的接口
cookie 保存在客户端 安全性差 场景:可用于保存表单信息、购物车信息等 session 保存在服务端,服务端生成session_id给客户端返回 session_id一般借助cookie来保存 场景:用户权限认证 大量的session会占用服务器资源