源码地址:https://github.com/emirpasic/gods

前言

发现这个包是看见 Leetcode 在线 Go 环境给的描述

版本:Go 1.16.2 支持 https://godoc.org/github.com/emirpasic/gods 第三方库。

于是查看,发现是为了弥补 Golang 本身缺少的集合与容器等数据结构编写的,既然刷题可以用到、并且可以减少工作量,所以有必要学习一下。

尝试

开源项目的优势,文档说明齐全,照着文档读一遍即可理解大概,如果之前有 OOP 相关的编码经验,那就更容易啦!

大概看了下 Readme,感觉也没什么好写的🤣

基本上就是需要用什么然后直接 xxx.New(),之后就可以 OOP 直接调用方法,方法的命名与其他编程语言类似。

给出一个 arraylist 的例子:

  1. package main
  2. import (
  3. "github.com/emirpasic/gods/lists/arraylist"
  4. "github.com/emirpasic/gods/utils"
  5. )
  6. func main() {
  7. list := arraylist.New()
  8. list.Add("a") // ["a"]
  9. list.Add("c", "b") // ["a","c","b"]
  10. list.Sort(utils.StringComparator) // ["a","b","c"]
  11. _, _ = list.Get(0) // "a",true
  12. _, _ = list.Get(100) // nil,false
  13. _ = list.Contains("a", "b", "c") // true
  14. _ = list.Contains("a", "b", "c", "d") // false
  15. list.Swap(0, 1) // ["b","a",c"]
  16. list.Remove(2) // ["b","a"]
  17. list.Remove(1) // ["b"]
  18. list.Remove(0) // []
  19. list.Remove(0) // [] (ignored)
  20. _ = list.Empty() // true
  21. _ = list.Size() // 0
  22. list.Add("a") // ["a"]
  23. list.Clear() // []
  24. list.Insert(0, "b") // ["b"]
  25. list.Insert(0, "a") // ["a","b"]
  26. }

函数

Comparator

Iterator

Enumerable

Serialization

Sort