当前位置: 首页 > news >正文

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!
http://www.lryc.cn/news/67095.html

相关文章:

  • 常用的intellij的快捷键
  • Unity中的`SetPositionAndRotation()`
  • API 接口的使用和功能
  • Vue插件
  • C++好难(5):内存管理
  • vue-admin-template中vue动态路由不显示问题解决
  • IP协议介绍
  • 将一个单体服务重构成微服务
  • SpringBoot项目如何打包成exe应用程序
  • 一文读懂:客户管理系统平台是什么?有什么作用?
  • Node.js 与 TypeScript
  • Python并发编程之进程理论
  • 超级详细的mysql数据库安装指南
  • Java并发编程实践学习笔记(三)——共享对象之发布和异常
  • Python学习之Image模块图片滤镜效果操作示例
  • Grafana 系列-统一展示-5-AWS Cloudwatch 仪表板
  • MySQL---控制流函数、窗口函数(序号函数、开窗聚合函数、分布函数、前后函数、头尾函数、其他函数)
  • 一心报国的西工大网安人走出新手村
  • 如何安装oracle的sample schema
  • ChatGPT :国内免费可用 ChatGPT +Midjourney绘图
  • 女孩子转数据分析难吗?难在哪里?
  • 基于常用设计模式的业务框架
  • ubuntu重启ssh服务
  • 【19】SCI易中期刊推荐——计算机 | 人工智能领域(中科院2区)
  • Vue.js条件、循环语句
  • Go语言学习查缺补漏ing Day4
  • 说服审稿人,只需牢记这 8 大返修套路!
  • Java 责任链模式详解
  • 使用MASA全家桶从零开始搭建IoT平台(三)管理设备的连接状态
  • 我的新书上架了!