package main
import "fmt"
type Number int
func (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)
我相信这是因为类型断言仅适用于接口,而不适用于自定义类型。
那么有什么解决办法呢?
相关分类