Go语言报错cannot define new methods on non-local type_nudt_qxx的博客-CSDN博客


本站和网页 https://blog.csdn.net/xiangxianghehe/article/details/78650268 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

Go语言报错cannot define new methods on non-local type_nudt_qxx的博客-CSDN博客
Go语言报错cannot define new methods on non-local type
nudt_qxx
于 2017-11-27 22:55:28 发布
9398
收藏
分类专栏:
golang
文章标签:
go语言
methods
golang
函数
方法
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/xiangxianghehe/article/details/78650268
版权
golang
专栏收录该内容
33 篇文章
31 订阅
订阅专栏
今天在写一段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)
nudt_qxx
关注
关注
点赞
收藏
打赏
知道了
评论
Go语言报错cannot define new methods on non-local type
今天在写一段Golang代码时报错:package mainimport( "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
复制链接
扫一扫
专栏目录
Go关键字--type
架构师实战感悟
07-08
1万+
type
type有如下几种用法:
1. 定义结构体
2. 定义接口
3. 类型定义
4. 类型别名
5. 类型查询
定义结构体
结构体是用户自定义的一种抽象的数据结构,golang中struct类似于java语言中的class, 在程序设计中,有着举足轻重的地位。结构体的用法,将会在struct关键字中详细的介绍。下边来看一下定义一个结构体的语法格式:
type nam...
用反射的方式获取父类中的所有属性和方法
06-01
NULL
博文链接:https://bijian1013.iteye.com/blog/2299135
评论 4
您还未登录,请先
登录
后发表或查看评论
非本地类型不能定义方法 cannot define new methods on non-local type time.Duration
最新发布
wohu1104的专栏
09-25
730
能够随意地为各种类型起名字,是否意味着可以在自己包里为这些类型任意添加方法 ? 参见下面的代码演示 :
package main
import "time"
type MyDuration = time.Duration
func (m MyDuration) Set() {
func main() {
编译后报错:
./temp.go:7:6: cannot define new methods on non-local type time.Duration
编译器提示:不能在一个非本
【GoLang】类型和作用在它上面定义的方法必须在同一个包里定义
weixin_34205076的博客
12-21
706
cannot define new methods on non-local type int
参考资料:
http://wiki.jikexueyuan.com/project/the-way-to-go/10.6.html
http://stackoverflow.com/questions/28800672/how-to-add-new-methods-to-an-existing...
go语言:go语言的基本语法(3)
Mr_qing的博客
02-28
311
一、Go语言变量的生命周期
变量的生命周期指的是在程序运行期间变量有效存在的时间间隔。
变量的生命周期与变量的作用域有着不可分割的联系:
全局变量:它的生命周期和整个程序的运行周期是一致的;
局部变量:它的生命周期则是动态的,从创建这个变量的声明语句开始,到这个变量不再被引用为止;
形式参数和函数返回值:它们都属于局部变量,在函数被调用的时候创建,函数调用结束后被销毁。
for t := 0....
Go 学习笔记(27)— type 关键字(类型定义、类型别名、类型查询、定义接口、定义结构体)
wohu1104的专栏
05-05
1775
1. 类型别名定义
定义类型别名的写法为:
type TypeAlias = Type
类型别名规定: TypeAlias 只是 Type 的别名,本质上 TypeAlias 与 Type 是同一个类型,就像一个孩子小时候有小名、乳名,上学后用学名,英语老师又会给他起英文名,但这些名字都指的是他本人。
2. 类型定义
类型定义语法如下:
type newType Type
其中 new...
GO方法
鱼的博客
03-30
791
GO方法
Go语言方法定义
方法介绍
在 Go 语言中有一个概念和函数极其相似,叫做方法 。Go 语言的方法其实是作用在接收者(receiver)上的一个函数,接收者是某种非内置类型的变量。因此方法是一种特殊类型的函数。
接收者类型可以是(几乎)任何类型,不仅仅是结构体类型:任何类型都可以有方法,甚至可以是函数类型,可以是 int、bool、string 或数组的别名类型。但是接收者不能是接口类型。
方法的声明和普通函数的声明类似,只是在函数名称前面多了一个参数,这个参数把这个方法绑定到这个参数对应的类型上
GoLang之”奇怪用法“实践总结
热门推荐
delphiwcdj的专栏
11-23
3万+
2013-11-23 wcdj
0 摘要
本文通过对A Tour of Go的实践,总结Go语言的基础用法。
1 Go语言”奇怪用法“有哪些?
1,go的变量声明顺序是:”先写变量名,再写类型名“,此与C/C++的语法孰优孰劣,可见下文解释:
article on Go's declaration syntax
2,go是通过package来组织的(与pytho
go 类型系统(二)
Andes Home 千年的塔 -十年技术,风雨兼程
04-26
1432
pre-declared type (预声明类型)
golang 默认的有几个预声明类型:boole,num,string type. 这些预声明类型被用来构造其他的类型。
type literal(字面量类型)
由其他预声明类型组合而成(没有使用type 关键字定义),array,struct,pointer,slice,map,channel,function,interfa
11.Go语言干货-结构体
apple_56973763的博客
06-20
352
1. 类型别名与自定义类型
1.1 自定义类型
在Go语言中有一些基本的数据类型,整型、string、浮点型、布尔等数据类型。
在Go语言中可以根据自身的需求,使用关键字type自定义数据类型。
自定义类型是定义了一个全新的类型
我们可以根据内置的基本类型来定义。
也可以通过struct来定义。
// 基于基本类型定义自定义类型的格式
type MyInt int
通过type关键字定义,MyInt就是一种新的类型,它具有int的特性
1.2 类型别名
类型别名规定:TypeAlias是Type的别名
go语言学习(二)
dsaghjkye的博客
07-10
204
2.12 Go语言变量的生命周期
变量的生命周期指的是在程序运行期间变量有效存在的时间间隔。对于在包一级声明的变量来说,它们的生命周期和整个程序的运行周期是一致的。而相比之下,局部变量的声明周期则是动态的:每次从创建一个新变量的声明语句开始,直到该变量不再被引用为止,然后变量的存储空间可能被回收。函数的参数变量和返回值变量都是局部变量。它们在函数每次被调用的时候创建。
那么 Go语言的自动垃圾收集...
Golang教程:(十七)方法
Cynhard的专栏
07-17
3018
原文:https://golangbot.com/methods/
欢迎来到Golang系列教程的第十七篇。
什么是方法
一个方法只是一个函数,它有一个特殊的接收者(receiver)类型,该接收者放在 func 关键字和函数名之间。接收者可以是结构体类型或非结构体类型。可以在方法内部访问接收者。
通过下面的语法创建一个方法:
func (t Type) methodName(par
go语言学习-方法(十七)
这个名字想了很久
01-13
296
转载自:https://golangbot.com/methods/
什么是方法
方法是一个具有特殊的接收器类型的函数,在 func 关键字和函数名之间加入了一个特殊的接收器类型。该接收器可以是结构体类型或非结构体类型。接收器可以在方法内部访问。
以下是创建方法的语法。
func (t Type) methodName(parameter list) {
上面的代码片段创建了一个名为me...
Golang 学习路线 - Part 17:Go 中的 Methods(方法)
baobaoxiannv的博客
10-18
285
这里是 Golang 教程系列的第十七部分。
cannot create method implementations.<modle:java:base>is not on its projects
Lsdca的博客
11-26
3247
cannot create method implementations.is not on its project's path
,这就是所谓jdk1.9的特性?
才刚学java不久,各种原始bug或者eclipse(bug)出来打击!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
GO学习笔记——面向对象编程之方法(16)
pigff的博客
10-29
173
讲完了结构体,如果要为这个结构体对象设计一些实用的方法,比如对于单链表,有单链表的遍历和反转等,这些方法是如何来定义的呢?
C++中,这些方法也一同放在class中定义了,但是GO中不可以,必须在结构体外定义。因此,为了能够对结构体进行上述实用的操作,GO中有了方法这个概念。
方法本质其实就是一个函数,下面来看看实现细节。
方法的定义
//定义一个单链表的节点
type ListNode...
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
nudt_qxx
CSDN认证博客专家
CSDN认证企业博客
码龄9年
暂无认证
395
原创
2万+
周排名
33万+
总排名
341万+
访问
等级
2万+
积分
1576
粉丝
2029
获赞
768
评论
6881
收藏
私信
关注
热门文章
Ubuntu 18.04换国内源 中科大源 阿里源 163源 清华源
222790
python装饰器详解
162539
pandas DataFrame数据转为list
154268
Win10 Python3.6下安装PyTorch
124467
Ubuntu 20.04换国内源 清华源 阿里源 中科大源 163源
112509
分类专栏
Modern CPP之从从C++11到C++23
7篇
CUDA从入门到精通
4篇
Rust从入门到高级
4篇
Rust CookBook
1篇
Apollo从入门到精通
1篇
Golang从入门到精通
22篇
使用Rust从零写操作系统
3篇
Leetcode/剑指offer/算法/数据结构
67篇
slam
30篇
python
76篇
java
12篇
C++
148篇
linux运维
103篇
机器学习
25篇
metasploit学习
1篇
lua
4篇
zeromq
5篇
Rust
17篇
Quant
1篇
数学
4篇
爬虫
7篇
perl
2篇
29篇
Docker
13篇
深度学习
53篇
图像处理
47篇
opencv
29篇
QT
5篇
VSCrawler
4篇
数据挖掘
11篇
深度学习框架
28篇
C#/.net
17篇
wpf
1篇
windows程序设计
3篇
linux开发
13篇
云桌面/虚拟化
11篇
spice
3篇
.Net Core
10篇
RDP
1篇
linux C/C++
47篇
windows C/C++
14篇
其他
8篇
OpenStack
2篇
thrift/RPC
2篇
ros
16篇
Boost库
8篇
golang
33篇
shell/awk
6篇
Tidb
1篇
数据库
1篇
计算机视觉
38篇
无人机
10篇
机器人
18篇
Erlang/Elixir
1篇
Kotlin
1篇
Perl6
1篇
PyTorch
11篇
TensorFlow
5篇
MXNet/Gluon
5篇
Caffe/Caffe2
2篇
Keras
Theano
CNTK
PaddlePaddle
1篇
并行计算
8篇
mpi
1篇
openmpi
2篇
PCL
3篇
操作系统
7篇
计算机网络
1篇
自动驾驶
14篇
Apollo
2篇
mmdetection
3篇
CUDA
5篇
最新评论
Docker和宿主机之间共享文件
终身学习小达人:
我来回一下,把存在的容器转为一个镜像,然后基于这个镜像创建的容器的时候就可以挂载目录了。
Ubuntu 22.04换国内源 清华源 阿里源 中科大源 163源
和苏Hibna:
不愧是中科大,清华和阿里都慢死了
cuda从入门到精通(三)之核函数和参数配置
qq_45240069:
老哥解决了吗?我也在想这个核函数和内核是什么关系?是一对多还是多对一?
Ubuntu 22.04换国内源 清华源 阿里源 中科大源 163源
mjt666:
不愧是中科大
error while loading shared libraries解决办法
满洲里有象、:
成功解决了问题,谢谢大佬
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
Python和C++实现简易的扩展卡尔曼滤波EKF
vscode自动升级后无法打开远程解决方案
GeForce GTX 2050/2080/3090/A6000自动安装nvidia显卡驱动
2023年1篇
2022年10篇
2021年13篇
2020年39篇
2019年84篇
2018年91篇
2017年196篇
2016年20篇
2015年2篇
目录
目录
分类专栏
Modern CPP之从从C++11到C++23
7篇
CUDA从入门到精通
4篇
Rust从入门到高级
4篇
Rust CookBook
1篇
Apollo从入门到精通
1篇
Golang从入门到精通
22篇
使用Rust从零写操作系统
3篇
Leetcode/剑指offer/算法/数据结构
67篇
slam
30篇
python
76篇
java
12篇
C++
148篇
linux运维
103篇
机器学习
25篇
metasploit学习
1篇
lua
4篇
zeromq
5篇
Rust
17篇
Quant
1篇
数学
4篇
爬虫
7篇
perl
2篇
29篇
Docker
13篇
深度学习
53篇
图像处理
47篇
opencv
29篇
QT
5篇
VSCrawler
4篇
数据挖掘
11篇
深度学习框架
28篇
C#/.net
17篇
wpf
1篇
windows程序设计
3篇
linux开发
13篇
云桌面/虚拟化
11篇
spice
3篇
.Net Core
10篇
RDP
1篇
linux C/C++
47篇
windows C/C++
14篇
其他
8篇
OpenStack
2篇
thrift/RPC
2篇
ros
16篇
Boost库
8篇
golang
33篇
shell/awk
6篇
Tidb
1篇
数据库
1篇
计算机视觉
38篇
无人机
10篇
机器人
18篇
Erlang/Elixir
1篇
Kotlin
1篇
Perl6
1篇
PyTorch
11篇
TensorFlow
5篇
MXNet/Gluon
5篇
Caffe/Caffe2
2篇
Keras
Theano
CNTK
PaddlePaddle
1篇
并行计算
8篇
mpi
1篇
openmpi
2篇
PCL
3篇
操作系统
7篇
计算机网络
1篇
自动驾驶
14篇
Apollo
2篇
mmdetection
3篇
CUDA
5篇
目录
评论 4
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
添加红包
祝福语
请填写红包祝福语或标题
红包数量
红包个数最小为10个
红包总金额
红包金额最低5元
余额支付
当前余额3.43元
前往充值 >
需支付:10.00元
取消
确定
下一步
知道了
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝
规则
hope_wisdom 发出的红包
打赏作者
nudt_qxx
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值