使用下面给定的类型签名,有没有办法做类似于下面的事情?
func Transform[T, U any](item T) U {
return item
}
上面的代码给出了以下错误:
cannot use item (variable of type T constrained by any) as U value in return
statement
我无法使用上面的类型签名,因为我本质上是在尝试制作一个可选的转换方法,有时需要从 T 转换为 U,但有时只返回自身。下面显示了一个更详细的用例示例。
type SomeStruct[T, U any] struct {
Transform func(T) U
}
func (s SomeStruct[T, U]) Transform(elem T) (U) {
if s.Transform != nil {
return s.Transform(elem)
}
return elem
}
有没有办法创建一个有时有条件地只返回自身的 Transform 函数?
阿波罗的战车
心有法竹
相关分类