今天在写一段Golang代码时报错:

package main
import(
  "fmt"
)
func Add(a ,b int){         //函数
  fmt.Println(a+b)
}
func (a int) Add (b int){   //方法
  fmt.Println(a+b)
}

报错信息如下:

cannot define new methods on non-local type int

上网搜了下原来原因是 go语言不允许为简单的内置类型添加方法

这里需要用type来临时定义一个和int具有同样功能的类型。不过需要强调的是,这个类型不能看成是int类型的别名,它们属于不同的类型,不能直接相互赋值。

修改后的代码如下:

package main
import(
  "fmt"
)
type myInt int
func Add(a ,b int){             //函数
  fmt.Println(a+b)
}
func (a myInt) Add (b myInt){   //方法
  fmt.Println(a+b)
}
func main() {
        a, b := 3,4
        var aa,bb myInt = 3,4
        Add(a,b)
        aa.Add(bb)
  }
Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐