package main import "fmt" /* 一个结构体实现多个接口 */ type AInterface interface { setName(string) getName()string } type BInterface interface { run(string) } //接口的嵌套 type Animaler interface { AInterface BInterface } 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 Animaler = d fmt.Println(d1.getName())//erha d1.setName("二哈") fmt.Println(d1.getName())//二哈 d1.run(d.name)//二哈 is running }
package main import "fmt" /* 空接口和类型断言的使用注意事项 切片和结构体赋值给空接口,如果访问切片中的某个值,或者访问结构体的某个属性,会报错 */ type address struct { name string phone int } func main() { mp1 := make(map[string]interface{}) mp1["username"]="lft" mp1["age"]=20 mp1["hobby"] = []string{"python", "golang"} // fmt.Println(mp1["hobby"][0]) //type interface {} does not support indexing //使用类型断言解决 hobby,_ := mp1["hobby"].([]string) fmt.Println(hobby[0]) //python mp1["address"] = address{ name:"lft", phone:123456789, } fmt.Println(mp1["address"]) //{lft 123456789} // fmt.Println(mp1["address"].name) //type interface {} is interface with no methods //断言解决 address1, _ := mp1["address"].(address) fmt.Println(address1.name) //lft }
相关推荐
主要介绍了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编程基础】12接口interface │ 【Go编程基础】13反射reflection │ 【Go编程基础】14并发concurrency │ 【Go编程基础】15项目与坑 二、Go Web基础 │ 【Go Web基础】01博客项目设计 │ ...
本文实例讲述了Go语言接口用法。分享给大家供大家参考。具体分析如下: 接口类型是由一组方法定义的集合。 接口类型的值可以存放实现这些方法的任何值。 代码如下:package main import ( “fmt” “math” ) ...
在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 语言,不防关注...
接口是一组固定的方法集,由于静态类型的限制,接口变量有时仅能调用其中特定的一些方法。 请看下面这段代码 package main import fmt type Phone interface { call() } type iPhone struct { name string } func...
这里是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