Go 语言接口

Go 语言接口

Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。

实例

实例

/* 定义接口 */

type interface_name interface {

method_name1 [return_type]

method_name2 [return_type]

method_name3 [return_type]

...

method_namen [return_type]

}

/* 定义结构体 */

type struct_name struct {

/* variables */

}

/* 实现接口方法 */

func (struct_name_variable struct_name) method_name1() [return_type] {

/* 方法实现 */

}

...

func (struct_name_variable struct_name) method_namen() [return_type] {

/* 方法实现*/

}

实例

实例

package main

import (

"fmt"

)

type Phone interface {

call()

}

type NokiaPhone struct {

}

func (nokiaPhone NokiaPhone) call() {

fmt.Println("I am Nokia, I can call you!")

}

type IPhone struct {

}

func (iPhone IPhone) call() {

fmt.Println("I am iPhone, I can call you!")

}

func main() {

var phone Phone

phone = new(NokiaPhone)

phone.call()

phone = new(IPhone)

phone.call()

}

在上面的例子中,我们定义了一个接口Phone,接口里面有一个方法call()。然后我们在main函数里面定义了一个Phone类型变量,并分别为之赋值为NokiaPhone和IPhone。然后调用call()方法,输出结果如下:

复制代码
I am Nokia, I can call you!
I am iPhone, I can call you!
相关推荐
TheNextByte11 小时前
如何将照片从计算机传输到Android /iPhone
android·gitee·iphone
2601_949146532 小时前
Go短信验证码API示例代码:标准库net/http的调用示范
http·golang·iphone
上海合宙LuatOS2 小时前
LuatOS框架的使用(1)
java·开发语言·单片机·嵌入式硬件·物联网·ios·iphone
小鹿软件办公7 小时前
苹果因通信问题撤回面向旧款 iPhone 和 iPad 的系统更新
ios·iphone
Thomas_YXQ17 小时前
Unity3D在ios平台下内存的优化详解
开发语言·macos·ios·性能优化·cocoa
TheNextByte121 小时前
iPhone 与Android :有什么区别?
android·cocoa·iphone
zhyongrui1 天前
SwiftUI 光晕动画性能优化:消除托盘缩放卡顿的实战方案
ios·性能优化·swiftui
TheNextByte11 天前
如何通过 6 种方式删除 iPhone/iPad 上的文件
ios·iphone·ipad
花花鱼1 天前
mac下的iphone镜像连接
macos·cocoa·iphone
WeiAreYoung1 天前
uni-app Xcode制作iOS谷歌广告Google Mobile Ads SDK插件
ios·uni-app