package mainimport "fmt"type Number intfunc (n *Number) IncreaseMe(i int) { *n += i}func main() { n := Number(10) n.IncreaseMe(90) // n is now supposed to be 100 fmt.Println(n)}运行上面的代码时,它给了我错误信息无效操作:*n += i(数字和整数类型不匹配)这是可以预料的,因为它试图对不共享相同类型的变量进行数学运算。然后我尝试*n.(int) += i这告诉编译器不要担心,因为 *n 可以安全地视为整数,这导致我invalid type assertion: n.(int) (non-interface type *Number on left)我相信这是因为类型断言仅适用于接口,而不适用于自定义类型。那么有什么解决办法呢?
1 回答
- 1 回答
- 0 关注
- 181 浏览
添加回答
举报
0/150
提交
取消