美文网首页golang研究所
Go结构体不能跨包写方法

Go结构体不能跨包写方法

作者: 百里江山 | 来源:发表于2020-04-07 18:11 被阅读0次

遇到如下错误: cannot define new methods on non-local type a.Show
意思是: 不能定义非本地类型的方法

实验一下

新建a和b两个文件夹.再分别新建2个文件a.go , b.go

a/a.go

package a
type Student struct {
    Name String
}

b/b.go

package b 
func (s a.Student) Show() {
    fmt.Println(s.Name)
}

main.go

func main() {
    student := new(a.Student)
    student.Name = "百里"
    student.Show() // (1) 会报错的.
}

相关文章

  • Go结构体不能跨包写方法

    遇到如下错误: cannot define new methods on non-local type a.Sho...

  • go的工厂模式

    说明 go的结构体没有构造函数,通常是用工厂模式来解决这个问题 使用工厂模式来解决跨包引的私有结构体的问题目录结构...

  • Golang JSON的序列化和反序列化

    go提供了一个包encode/json,方便我们操作json。 结构体转json json转结构体

  • 第04天(面对对象编程)_02

    05_结构体指针类型匿名字段.go 06_面向过程和对象函数的区别.go 07_为结构体类型添加方法.go 08_...

  • 使用Golang完成的第一个项目

    Go语言和PHP的区别(Go语言特色) 没有类的概念,可以用结构体替代。给结构体定义变量,声明方法。 两个特殊的方...

  • go入门(五) 2018-07-19

    方法和接口 方法 Go语言中没有类,但是可以在结构类型上定义方法,实际上可以对包中的任意类型定义任意方法,但是不能...

  • <>

    结构体及其使用方法 结构体的定义 Go语言用嵌入式字段实现了继承吗?? GO语言不存在所谓的继承,只有组合。组合和...

  • go语言的工厂模式

    有一工程如下: model包中的student.go源码: student.go声明了一个Student的结构体,...

  • 《Go语言四十二章经》第十八章 Struct 结构体

    《Go语言四十二章经》第十八章 Struct 结构体 作者:李骁 18.1结构体(struct) Go 通过结构体...

  • go结构体和方法

    struct为何物 go中的struct可以实现oop中的类、方法。go语言中的struct成员可以是任何类型,如...

网友评论

    本文标题:Go结构体不能跨包写方法

    本文链接:https://www.haomeiwen.com/subject/baanphtx.html