为了账号安全,请及时绑定邮箱和手机立即绑定

(重新发布)Go 中的通用总和

(重新发布)Go 中的通用总和

Go
慕森王 2021-06-29 14:35:28
http://play.golang.org/p/y7G1fMSoVa我很抱歉。我不小心删除了我之前的问题。这是我的第二次尝试。我知道 Go 不支持泛型,但应该有办法做到这一点。我正在尝试添加任何类型的两个参数并使用接口和类型断言返回结果。但我被困在(+) 未在接口中定义想不出我应该返回什么类型这是我的上一步。   func Add(val1, val2 interface{}) int {        new_a := val1.(int)        new_b := val2.(int)        return new_a + new_b   }这给了我正确的答案,但这是无用的,因为我知道将传递整数值。我想要一个不知道会给出什么的函数,并根据给定的变量类型返回相应的加法。这是我第二次尝试并卡住了。http://play.golang.org/p/-_jvvs09nl func Add(val1, val2 interface{}) {// var x interface{} = 7  // x has dynamic type int and value 7// i := x.(int)           // i has type int and value 7// a := reflect.ValueOf(val1)// b := reflect.ValueOf(val2)// fmt.Println(a, b)// <int Value> <int Value>type_val1 := reflect.TypeOf(val1)type_val2 := reflect.TypeOf(val2)fmt.Println(type_val1, type_val2)result1 := val1.(type_val1) // ERROR : type_val1 is not a typeresult2 := val2.(type_val2) // ERROR : type_val2 is not a typefmt.Println(result1, result2)
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信