Go 语言接口

news/2024/7/20 10:15:08 标签: iphone, ios

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.niftyadmin.cn/n/315011.html

相关文章

7.设计模式之责任链模式

前言 责任链,即将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递, 链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象。为了避免请求发送者与多个请求处理者耦合在…

springboot工作原理解析

Spring Boot 是基于 Spring 框架的快速开发框架,它的目标是简化 Spring 应用程序的搭建和开发过程。Spring Boot 通过自动配置、快速启动、独立部署、多种数据源支持、集成测试等功能,使用springboot可快速构建高效、可靠的程序 目录 1. 自动配置1.1 Spr…

AndroidStudio-学习笔记之多级目录功能的设计与开发

多级目录功能的设计与开发 演示效果需求描述开发预计前端后端 前端开发多级目录的UI小框架前端xml前端代码---本地demo版前端代码---服务器版逻辑说明 后端开发表设计书写接口 演示效果 需求描述 根据需求,为用户展示多级目录(目前设计的为4级目录),并在…

rust 第五章 —— trait详解

文章目录 前言一、初识Trait二、Trait的基本用法三、常见用法以及代码细节1.常见的注解简化代码2.表达式简化代码前言 本系列教程目录可点击这里查看:Rust教程目录 本文主要详解Rust中Trait这个概念,之所以为它单开一个章节,就是因为它非常的重要。 如果与其它语言类比来…

边缘网关协议(BGP)的演进与发展

边缘网关协议(Border Gateway Protocol,BGP)是一种用于在网络边缘传输路由信息的协议。它被广泛用于骨干网络和接入网络中,用于在网络边缘路由流量,并确保不同的网络之间具有最佳的路由路径。BGP是由RIP协议发展而来的,但在实现和…

virtualbox ubuntu20.04集群网络配置

这个问题困扰我一年之久。 大三学期的课程,因为集群网络问题卡壳。当时查阅各种资料,百度几十篇文章,看博客,甚至是请教老师都没能解决,也因为这个问题导致Hadoop后面都没有实操学习。 今大四毕业之际,又…

vue3【使用axios并封装axios请求】

第一步:安装axios npm install axios 第二步:编写请求文件 新建request.js 简单的axios封装,里面相关提示信息,自己可以引入element-plus去添加 /**axios封装* 请求拦截、相应拦截、错误统一处理*/ import axios from axios; i…

JUC之Synchronized与Lock

Synchronized 称之为”同步锁 作用: 保证在同一时刻, 被修饰的代码块或方法只会有一个线程执行,以达到保证并发安全的效果 用法: 1.修饰方法:方法锁,锁的对象是当前对象 2.修饰静态方法:类锁…