08 2021 档案

摘要:defer 用于延迟函数的调用,每次defer都会把一个函数压入栈中,函数返回前再把延迟的函数取出并执行 数据结构 type _defer struct { sp uintptr //函数栈指针 pc uintptr //程序计数器 fn *funcval //函数地址 link *_defer / 阅读全文
posted @ 2021-08-31 17:38 CJ-cooper 阅读(188) 评论(0) 推荐(0)
摘要:闭包=函数+外层变量的引用 recover必须搭配defer使用 defer一定要在可能引发panic的语句之前定义 阅读全文
posted @ 2021-08-17 15:27 CJ-cooper 阅读(42) 评论(0) 推荐(0)
摘要:map底层是由哈希表实现的 Go使用链地址法来解决键冲突。 当两个key落在了同一个桶中,这时就发生了哈希冲突。go的解决方式是链地址法:在桶中按照顺序寻到第一个空位,若有位置,则将其置于其中;否则,判断是否存在溢出桶,若有溢出桶,则去该桶的溢出桶中寻找空位,如果没有溢出桶,则添加溢出桶,并将其置溢 阅读全文
posted @ 2021-08-17 00:58 CJ-cooper 阅读(644) 评论(0) 推荐(0)
摘要:byte 等同于int8,常用来处理ascii字符 rune等同于int32,rune 只是 int32的别名,常用来处理unicode或utf-8字符//可以处理中文 在使用上,rune能处理一切的字符,而byte仅仅局限在ascii unicode:统一码,也叫万国码,是为了解决传统的字符编码方 阅读全文
posted @ 2021-08-16 23:08 CJ-cooper 阅读(144) 评论(0) 推荐(0)
摘要:冒泡排序 冒泡排序算法的原理如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需 阅读全文
posted @ 2021-08-16 17:45 CJ-cooper 阅读(68) 评论(0) 推荐(0)
摘要:go语言初始化结构体指针 head:=&ListNode{} 或者 head:=new(ListNode) 阅读全文
posted @ 2021-08-11 18:39 CJ-cooper 阅读(117) 评论(0) 推荐(0)