如何修改TransNumbers函数以使其与泛型函数doubleG和tripleG一起工作
type trandformFn func(int) int
func transformNumbers(numbers *[]int, transform trandformFn) []int {
dNumbers := []int{}
for _, value := range *numbers {
dNumbers = append(dNumbers, transform(value))
}
return dNumbers
}
func double(value int) int {
return 2 * value
}
func triple(value int) int {
return 3 * value
}
func doubleG[T int | float64 | float32](value T) T {
return 2 * value
}
func tripleG[T int | float64 | float32](value T) T {
return 3 * value
}
我对transformFn类型感到困惑.
try 一些类似的东西:
func transformNumbers(numbers *[]int, transform func[T int|float64|float32](T)T) []int {
dNumbers := []int{}
for _, value := range *numbers {
dNumbers = append(dNumbers, transform(value))
}
return dNumbers
}
但是出错了!
func transformNumbers(numbers *[]int, transform func[T int|float64|float32](T)T) []int {
dNumbers := []int{}
for _, value := range *numbers {
dNumbers = append(dNumbers, transform(value))
}
return dNumbers
}
预计这会起作用,但得到了错误!