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

Go:在结构上输入断言?

Go:在结构上输入断言?

Go
慕哥9229398 2021-08-16 16:01:00
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
提交
取消
意见反馈 帮助中心 APP下载
官方微信