代码拉取完成,页面将自动刷新
go 1.18+ 的泛型类型定义,提供常见go机器类型在数学下的分类定义。
以便于通过清晰的类型分类实现逻辑清晰的泛型定义
number
定义数字包中提供了标准的数学数字的定义,其中包括以下类型
数字类型 | 全称 | 简称 |
---|---|---|
自然数 | NaturalNumber |
N |
整数 | Integer |
Z |
有理数 | RationalNumber |
Q |
实数 | RealNumber |
R |
复数 | ComplexNumber |
C |
你可以使用以上常见泛型类型的全称或简称来声明泛型类型,例如下面的使用说明中对有理数类的引用
使用以下命令下载本包,本包同时在github 和 gitee上提供
go get gitee.com/ryjer/go-generic
或者从 github 下载
go get github.com/ryjer/go-generic
以上命令会下载最新版本的包,将其写入依赖文件 go.mod
中。同时锁定版本,如果你想更新包到最新版本或者指定版本的话,可以使用-u
参数选项。具体可以参考下面的步骤3
下载完本包后,就可以在你的包中调用了。
像下面这样在对应的包中引用本仓库下的对应包,例如数字包 number
。下面的例子使用了改包中定义的有理数类型RationalNumber
:
package main
import (
"fmt"
"gitee.com/ryjer/go-generic/number"
)
func add[T number.RationalNumber](a, b T) (sum T) {
return a + b
}
func main() {
fmt.Printf("3 + 5 = %v\n", add[int](3, 5))
}
对于常用的定义包,通常建议另外起一个短一些的缩写或别名,例如将 number
包重命名为 num
,数字包也定义了有理数集的缩写Q
来指代可商的有理数
package main
import (
"fmt"
num "gitee.com/ryjer/go-generic/number"
)
func add[T num.Q](a, b T) (sum T) {
return a + b
}
func main() {
fmt.Printf("3 + 5 = %v\n", add[int](3, 5))
}
上面的过程会锁定你当时下载的包的版本,如果你想更新包的版本,可以使用go get -u
命令
go get -u gitee.com/ryjer/go-generic
此命令也可以更新到指定版本,你可以查阅官方手册
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。