2 回答

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊
將此添加到問(wèn)題中的代碼似乎有效:
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]
}
如果有人有其他選擇,請(qǐng)告訴我。

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
您可以使用類型約束
type number interface {
~int32 | ~float32
}
而是創(chuàng)建這樣的 Float 或 Int 新類型
- 2 回答
- 0 關(guān)注
- 158 瀏覽
添加回答
舉報(bào)