type Intf1 interface {
int | string
F1() F2()
}
Intf1的类型集合是个空集合。因为int和string都没有实现F1和F2方法。
任何集合与空集合求交集结果还是空集合。所有I的类型集合也是空集合。
作者回复: 👍
2
lesserror
2023-08-05来自广东
Tony bai 老师,有几个几个问题:
1. 文中说:“它的类型集合为 int、~string 和 Intf2 方法集合的并集”,这里 Intf2 方法,这里的方法该怎么理解,这里的 Intf2 不是一个只含有类型元素的接口吗?
2. 文中:“ int | ~string | Intf2 的类型集合:{以 int 为底层类型的所有类型,以 float64 为底层类型的所有类型,以 string 为底层类型的所有类型}。” 这里没有包含 int,是因为 Intf2 中的 ~int 包含这里的 int 类型,所以并集中并没有出现 int,是这样的吗?
作者回复: 1. typo,应为类型集合的并集。稍后让编辑老师改一下,感谢发现。
2. 对的。因为 Intf2 中的 ~int 包含这里的 int 类型,所以并集中并没有出现 int
1
Sunrise
2022-11-28来自美国
还是搞不懂为啥 go 泛型用中括号表示而不用<>,如果单纯为了避免和小于号大于号冲突那么下面不也冲突了吗
type MyStruct [T * int]struct{} // 编译错误:undefined: T // 编译错误:int (type) is not an expression
这块如果用<>表示不就可以避免了吗