2 回答
TA贡献1775条经验 获得超11个赞
将此添加到问题中的代码似乎有效:
package main
import "fmt"
type numbers[T any] []T
func (numbers[T]) isNumber(){}
func add[T number](obj object, key string, val T) {
switch value := obj[key].(type) {
case nil:
obj[key] = val
case T:
obj[key] = numbers[T]{value, val}
case numbers[T]:
obj[key] = append(value, val)
}
}
func main() {
obj := object{"alfa": Int32(1), "bravo": Float32(1)}
add(obj, "bravo", Float32(2))
add(obj, "charlie", Int32(1))
fmt.Println(obj) // map[alfa:1 bravo:[1 2] charlie:1]
}
如果有人有其他选择,请告诉我。
TA贡献1802条经验 获得超5个赞
您可以使用类型约束
type number interface {
~int32 | ~float32
}
而是创建这样的 Float 或 Int 新类型
- 2 回答
- 0 关注
- 234 浏览
添加回答
举报
