猿问

Go:在结构上输入断言?


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)

我相信这是因为类型断言仅适用于接口,而不适用于自定义类型。


那么有什么解决办法呢?


慕哥9229398
浏览 182回答 1
1回答
随时随地看视频慕课网APP

相关分类

Go
我要回答