不知火


  • 首页

  • 分类

  • 归档

  • 标签

由一个golang的B-Tree包展开-3(删除元素)

发表于 2018-12-28 | 分类于 golang |

前面说了B-Tree数据结构等定义,并基于google的一个内存golang btree包源码分析,实现了B-Tree的初始化和插入,最后再来说说元素删除部分代码的理解吧。要看示例代码请点这里

阅读全文 »

由一个golang的B-Tree包展开-2(插入)

发表于 2018-12-25 | 分类于 golang |

在上一篇中,说了B-Tree的定义以及Google 一个btree包的一些信息, 这里根据阅读其源代码的理解,实现一个简化版的B-Tree插入操作。

Google的那个golang版本的btree包在应对gc和并发读写(copy on write)操作方面做了很多优化,这里我在实现的时候,先忽略这些,只是先实现核心的数据操作部分,不过对于一个生产包来说,gc和并发操作却是是要不得不考虑的事情

阅读全文 »

由一个golang的B-Tree包展开-1(属性介绍)

发表于 2018-12-25 | 分类于 golang |

偶然看到一个google的一个golang实现的内存中b-tree包(传送门),就细看了其实现. 对其他平衡树感谢趣的可以看这里:Left-Leaning Red-Black Tree, B+tree

reddit上有个github.com/google/btree和 github.com/cznic/b比较的讨论,可以看到这个包的作者与用户的一些讨论。

阅读全文 »

golang官方blog摘要-slice

发表于 2018-01-19 | 分类于 golang |

golang切片的使用和内部细节 – By Andrew Gerrand

网上可以看到的golang slice博文很多,因为刚开始使用golang的时候, 偶尔需要确定一下slice容量扩展的细节,就会去Google一下,其实最生动,图文并茂的还是官网的这篇,这里记录一下, 以防哪天自己脑子秀逗了,又要回来确认什么的东西的时候从网上Google半天。

先来看两个例子:

阅读全文 »

golang官方blog摘要-reflect

发表于 2017-12-19 | 分类于 golang |

Rob对golang reflect对一篇讲解贴:
The Laws of Reflection– By Rob Pike

golang作为一个静态语言,reflect给其提供了更灵活的runtime操作方式(元编程), 虽然在golang中,这也会带来性能问题,比如官方json包在序列化/反序列化的性能,让很多人改用了其他避开reflect的方式去处理问题,但是,也还是要承认,reflect给程序带来的极大灵活性无法让人割舍。

阅读全文 »

《自私的基因》读书笔记

发表于 2017-12-17 | 分类于 读书笔记 |

坦白地讲,是断断续续用半年的时间,才囫囵吞枣地看了一遍这本书,暂且记录一下自己的理解吧。
在看这本书之前,已经看过了尤瓦尔的《人类简史》(Sapiens:A Brief History of Mankind),其中就有大段提到道金斯的基因观点,比如从农作物基因扩张这个角度来审视农业革命,把人类反过来看成是农作物扩张的工具,觉得这是农作物基因的胜利,书中,类似的文字,无不隐隐透露出道金斯对尤瓦尔的影响。

阅读全文 »

golang中http server处理请求的过程梳理

发表于 2017-09-15 | 分类于 golang |

之前说了几种golang中设置http server的方式,这里接着记录一下阅读源码时看到的一个server是如何处理用户请求的,还是从server的启动开始看起。

step 1:

阅读全文 »

golang中http server设置的几种方式记录

发表于 2017-09-11 | 分类于 golang |

1.1 最简单的方式

通过查看http.ListenAndServe的源码可以知道,其第一个参数是监听地址,第二个参数是一个Handler接口类型, 只要是实现了这个接口的ServeHTTP函数即可。这里的http.ListenAndServe函数会创建一个server结构体实例, 并将server的Handler属性赋值为我们手动实现的Handler接口。

阅读全文 »

js中获取数组的全部子集数组和特定长度子集数组

发表于 2017-08-11 |

小伙伴最近在做一个数据处理分析的东东,中间有一个需要获取数组全部子集数组列表的需求,虽然ES6中增加了一种新的数据类型语法糖Set,不过还是没有提供获取集合子集的方法,所以,就自己写了一个,这里特别做一次记录,以方便下次自己使用。
如给定数组arr = [1,2,3],返回全部子集数组为[[1], [2], [3], [1,2], [1,3], [2,3], [1,2,3]],如果返回长度为2的子集数组则返回值[[1,2], [1,3], [2,3]].
整体思路上,可以先获取特定长度子集的数组,然后对个长度子集列表做一个归并即可,示例代码如下。

阅读全文 »

mongodb command tutorial

发表于 2017-08-11 | 分类于 工具使用存档 |

mongodb术语概念:
database,collection(对应table), document(对应记录行),field(对应数据字段)

阅读全文 »
12345
不知火

不知火

梦见它们都在草地上吃草

42 日志
13 分类
32 标签
豆瓣
© 2021 不知火
由 Hexo 强力驱动
主题 - NexT.Mist