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!
相关推荐
巴博尔6 小时前
UNIAPP中NVUE页面 动画
android·前端·javascript·ios·uni-app
2601_955767428 小时前
圆偏振光膜与AR抗反射膜原理评测:scinique双护技术如何实现“一柔一清”?
ios·ar·iphone·圆偏振光·磁控溅射
人月神话-Lee9 小时前
【图像处理】图像导出与工业级压缩策略——从像素到文件的最后一公里
图像处理·人工智能·ios·ai编程·swift
UXbot15 小时前
无需设计经验也能做原型:AI辅助工具功能评测
前端·人工智能·低代码·ui·ios·交互
ch_ziyuan16 小时前
2026新优化神马TV8.5影视点播系统保姆级搭建教程:三后台配置+反编译修改
android·ios·php
2601_9557674217 小时前
观复盾 iPhone 17 Pro 护景贴深度评测:参数解析与实测避坑
人工智能·ios·ar·iphone·圆偏振光·磁控溅射
一拳一个娘娘腔18 小时前
【SRC漏洞挖掘系列】第11期:移动端安全(Android/iOS)—— APP 里的“猫腻”大起底
android·安全·ios
学习3人组19 小时前
IOS手机使用电脑代理 IP 作为网关/代理出口实现穿越上网
tcp/ip·ios·智能手机
2501_9151063219 小时前
深入解析HTTPS抓包原理、中间人攻击及反抓包技术攻防
数据库·网络协议·ios·小程序·https·uni-app·iphone
ch_ziyuan20 小时前
跨平台APP封装分发系统搭建:iOS免签+安卓防报毒+IPA签名一体化
android·ios