package main import "fmt" /* 结构体值类型接收者和指针类型接收者实现结构体的区别 结构体的方法是值接收者,实例化后的结构体值类型和指针类型都可以赋值给接口变量 结构体的方法是指针接收者,实例化后的结构体指针类型才可以赋值给接口变量,值类型不能赋值给接口变量 */ type Animaler interface { setName(string) getName()string } type Dog struct { name string } func(d *Dog) setName(name string){ d.name=name } func(d Dog) getName()string{ return d.name } type Cat struct { name string } //指针类型的接收者 func(c *Cat) setName(name string){ c.name=name } func(c Cat) getName()string{ return c.name } func main() { d := &Dog{ name:"erha", } var d1 Animaler = d fmt.Println(d1.getName())//erha d1.setName("二哈") fmt.Println(d1.getName())//二哈 c := &Cat{ name:"miaomiao", } var c1 Animaler = c fmt.Println(c1.getName())//miaomiao c1.setName("喵喵") fmt.Println(c1.getName())//喵喵 }
package main import "fmt" /* 一个结构体实现多个接口 */ type Animaler1 interface { setName(string) getName()string } type Animaler2 interface { run(string) } type Dog struct { name string } func(d *Dog) setName(name string){ d.name=name } func(d Dog) getName()string{ return d.name } func(d Dog) run(name string){ fmt.Printf("%v is running", name) } func main() { d := &Dog{ name:"erha", } // 一个结构体实现多个接口的写法 var d1 Animaler1 = d var d2 Animaler2 = d fmt.Println(d1.getName())//erha d1.setName("二哈") fmt.Println(d1.getName())//二哈 d2.run(d.name)//二哈 is running }
相关推荐
主要介绍了go语言中的interface使用实例,go语言中的interface是一组未实现的方法的集合,如果某个对象实现了接口中的所有方法,那么此对象就实现了此接口,需要的朋友可以参考下
下面小编就为大家带来一篇浅谈Go语言中的结构体struct & 接口Interface & 反射。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
7. Go语言中的接口(Interface)是什么?请简要介绍在Go中的接口实现方式。 8. Go语言中的defer关键字是什么?请说明在Go中defer的作用和用法。 9. 什么是Go语言中的结构体(Struct)?请说明在Go中的结构体定义和...
本文实例讲述了go语言接口用法。分享给大家供大家参考。具体分析如下: 首先定义一个接口: 代码如下:type I interface{ Get() int Put(int) } 这段话就定义了一个接口,它包含两个函数Get和Put 好了,我的...
本文实例讲述了Go语言接口定义与用法。分享给大家供大家参考,具体如下: 在Go中,接口interface其实和其他语言的接口意思也没什么区别。interface理解其为一种类型的规范或者约定。一种类型是不是“实现”了一个...
2.Go语言基础 2.1. 你好,Go 2.2. Go基础 2.3. 流程和函数 2.4. struct 2.5. 面向对象 2.6. interface 2.7. 并发 2.8. 小结 3.Web基础 3.1 web工作方式 3.2 Go搭建一个简单的web服务 3.3 Go如何使得web工作 3.4 Go的...
本文实例讲述了Go语言接口用法。分享给大家供大家参考。具体分析如下: 接口类型是由一组方法定义的集合。 接口类型的值可以存放实现这些方法的任何值。 代码如下:package main import ( “fmt” “math” ) ...
│ 【Go编程基础】12接口interface │ 【Go编程基础】13反射reflection │ 【Go编程基础】14并发concurrency │ 【Go编程基础】15项目与坑 二、Go Web基础 │ 【Go Web基础】01博客项目设计 │ ...
在Go语言中接口(interface)是一种类型,一种抽象的类型。 每个接口类型由数个方法组成。接口的形式代码如下: type 接口类型名 interface{ 方法名1( 参数列表1 ) 返回值列表1 方法名2( 参数列表2 ) 返回值列表2...
Go 语言接口 Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。 实例 实例 /* 定义接口 */ type interface_name interface { ...
go-interface-examples 使用Go接口制作更清晰,更可测试的代码的一些示例。 这些假定对Go语法具有一般的了解,并具有编写简单程序的能力。 如果您还没有,那就吧... 如果您是Go语言的新手和/或一般而言相对较新的代码,
Go 编程语言是一个使得程序员更加有效率的开源项目。Go 是有表 达力、简洁、清晰和有效率的。它的并行机制使其很容易编写多核 和网络应用,而新的类型系统允许构建有性的模块化程序。Go 编译到机器码非常...
在自己学习 Golang 的这段时间里,我写了详细的学习笔记放在我的个人微信公众号 《Go编程时光》,对于 Go 语言,我也算是个初学者,因此写的东西应该会比较适合刚接触的同学,如果你也是刚学习 Go 语言,不防关注...
这里是go语言学习笔记4中关于接口的练习,读者可以参考着,自己体会体会。
本文实例讲述了Go语言排序与接口用法。分享给大家供大家参考。具体如下: 代码如下:import “fmt” type Sorter interface { Len() int Less(i, j int) bool Swap(i, j int) } type Xi []int type Xs []...
在Go语言的实际编程中,几乎所有的数据结构都围绕接口展开,接口是Go语言中所有数据结构的核心。 Go语言中的接口是一些方法的集合(method set),它指定了对象的行为:如果它(任何数据类型)可以做这些事情,那么...
接口 接口是用来定义行为的类型。...type notifier interface { notify() } type student struct { name string email string } func main(){ stu1 := student{cdb, 4717@qq.com} sendNotify(&stu1) //sendN
包括基本数据类型和复合数据类型。...复合数据类型包括数组(array)、切片(slice)、字典(map)、结构体(struct)和接口(interface)等。 此外,Go 语言还提供了指针(pointer)类型,用于存储变量的内存地址。