我正在尝试做一个比较器,它接受两个字符串指针,或者两个整数指针并返回结果。任何指针都可以是nil,只有当它们有值并且值相等时,我才需要true。
我试着用接口,
type T *interface{}
func compare(a T,b T) bool
字符串
因为我必须检查nil当 *string到T时,它是无用的。
我期待调用函数,如
var a *string
var b *string
if compare(a, b){
// do something
}
型
或
var a *string
var b *string
if a.equal(b){
// do sth
}
型
1条答案
按热度按时间col17t5w1#
使用类型参数编写函数:
字符串
下面是一些调用函数的示例:
型
Run it in the playground的一个。
下面是如何在Go语言1.17及更早版本中编写该函数:
假设您只使用两种类型,请使用类型Assert获取具体的指针类型并进行比较:
型
下面是一些调用函数的示例:
型
Run it in the Playground的
使用reflect API比较所有可比较的类型:
型