文件名称:govariant:【推荐使用https
文件大小:12KB
文件格式:ZIP
更新时间:2024-07-21 20:13:13
Go
Go(lang) sum 类型的生成器 Go 没有 sum 类型。 我们模拟它们——最常用的是将空interface{}与类型开关结合使用。 这很好用。 仍然......我想尝试另一种方式来做这件事——并为它编写一个代码生成器,这很流行。 偶然地,它是简单代码生成器的理想情况,因为它需要在几种类型上编写重复的方法。 基本思想是用一个接口编码一个 sum 类型,每个变量对应一个方法。 这些方法以变体类型命名,并返回它的值和布尔值。 返回值对应于类型断言。 对于每个变体,我们还添加了一个将其转换为 sum 类型的方法。 然而,这种方法有缺点和局限性。 我们不能在内置类型、从其他包或接口导入的类型上定义方法,因此如果我们希望所有方法都自动生成,它们就不能是变体。 并且由于实际类型是一个接口,该语言认为 nil 是一个允许的值。 如何使用它 首先,它期望由go generate运行。 如果
【文件预览】:
govariant-master
----README.mkd(2KB)
----template.go(1KB)
----LICENSE(16KB)
----main.go(2KB)
----example()
--------Shape_variant.go(1KB)
--------types.go(226B)
----generate()
--------generate_test.go(5KB)
--------generate.go(442B)