diff --git a/README.md b/README.md index 1e5a56f1..81a10449 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ 这是一个简单纯粹且完全开源的 Golang 中文学习文档,网站内容是作者在学习过程中的记录,每一篇文章的更新都是新的积累,主要包括 go 语言基础方面的东西,适合入门玩家浏览。 -由于作者水平十分有限,如果在文中有发现任何纰漏或者想自己发布文章,欢迎提交 issue 和 PR,有时间看到了会尽快审理。 +由于作者水平十分有限,如果在文中有发现任何纰漏或者想自己发布文章,欢迎提交 issue 和 PR,有时间看到了会尽快审理。chr ## 开发 diff --git a/src/essential/senior/90.generic.md b/src/essential/senior/90.generic.md index dc59a452..26578a14 100644 --- a/src/essential/senior/90.generic.md +++ b/src/essential/senior/90.generic.md @@ -1,7 +1,6 @@ --- date: 2022-08-26 --- - # 泛型 泛型,或者更学术化的名称 —— 参数化多态(Parameterized @@ -250,10 +249,6 @@ func Assert[T any](v any) (bool, T) { } ``` - - - - ## 类型集 在 1.18 以后,接口的定义变为了类型集 `(type set)`,含有类型集的接口又称为 `General interfaces` 即通用接口。 @@ -724,6 +719,14 @@ func (heap *BinaryHeap[T]) down(i int) { func (heap *BinaryHeap[T]) Size() int { return len(heap.s) } + +func NewHeap[T any](n int, c Comparator[T]) BinaryHeap[T] { + var heap BinaryHeap[T] + heap.s = make([]T, 0, n) + heap.Comparator = c + return heap +} + ``` 使用起来如下