http://play.golang.org/p/y7G1fMSoVa我很抱歉。我不小心刪除了我之前的問題。這是我的第二次嘗試。我知道 Go 不支持泛型,但應該有辦法做到這一點。我正在嘗試添加任何類型的兩個參數(shù)并使用接口和類型斷言返回結(jié)果。但我被困在(+) 未在接口中定義想不出我應該返回什么類型這是我的上一步。 func Add(val1, val2 interface{}) int { new_a := val1.(int) new_b := val2.(int) return new_a + new_b }這給了我正確的答案,但這是無用的,因為我知道將傳遞整數(shù)值。我想要一個不知道會給出什么的函數(shù),并根據(jù)給定的變量類型返回相應的加法。這是我第二次嘗試并卡住了。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 回答
- 0 關(guān)注
- 208 瀏覽
添加回答
舉報
0/150
提交
取消