首页 > 其他分享 >接口

接口

时间:2023-12-15 15:15:03浏览次数:28  
标签:Square float64 Area 接口 shape Circle

接口提供了一种实现多态性的方式,使得可以通过接口来编写通用的代码,而不依赖于具体的类型。

虽然Java和Go都有接口和多态的概念,但它们的实现和使用方式有所不同,。

 

优点:

 

案例

package main

import "fmt"

// 定义接口
type Shape interface {
    Area() float64
}

// 定义结构体(类型)- 圆形
type Circle struct {
    Radius float64
}

// 实现接口方法 - 圆形
func (c Circle) Area() float64 {
    return 3.14 * c.Radius * c.Radius
}

// 定义结构体(类型)- 正方形
type Square struct {
    SideLength float64
}

// 实现接口方法 - 正方形
func (s Square) Area() float64 {
    return s.SideLength * s.SideLength
}

func main() {
    // 创建一个 Circle 类型的变量
    circle := Circle{Radius: 2.5}

    // 创建一个 Square 类型的变量
    square := Square{SideLength: 3.0}

    // 使用接口类型的变量存储 Circle 类型的变量
    var shape Shape
    shape = circle

    // 调用接口方法
    area := shape.Area()
    fmt.Println("圆的面积是:", area)

    // 使用接口类型的变量存储 Square 类型的变量
    shape = square

    // 调用接口方法
    area = shape.Area()
    fmt.Println("正方形的面积是:", area)
}

  

标签:Square,float64,Area,接口,shape,Circle
From: https://www.cnblogs.com/mxleader/p/17903394.html

相关文章

  • 抽象类、抽象方法、接口
    一、抽象类抽象类不是必须具有抽象方法,但是抽象方法一定是抽象类。方法和类都需要加上abstract修饰符。如果一个方法为抽象方法,则子类必须重写方法,如果子类不重写父类抽象方法,则子类需要声明为抽象类。抽象类可以有非抽象方法,抽象方法需要实现。调用抽象类的抽象方法或者非抽......
  • 抖音商品详情API接口在电商行业中的重要性及实时数据获取实现
    随着移动互联网的快速发展,电商行业不断壮大。抖音作为一款短视频社交应用,近年来在电商领域取得了显著成果。本文将探讨抖音商品详情API接口在电商行业中的重要性,以及如何通过实时数据获取提高业务效率。我们将介绍相关的技术背景、API接口的基础知识、实时数据获取的方法和代码实现......
  • 用C++调用Windows.Media.Ocr接口实现图片的OCR识别
    这个接口最开始是给UWP程序用的。C++里需要用C++/WinRT方式调用。默认参数的识别率也不是很高的样子。只支持Win10+。#include<winrt/Windows.Storage.h>#include<winrt/Windows.Storage.Streams.h>#include<winrt/Windows.Graphics.Imaging.h>#include<winrt/Windows.Me......
  • 【C++】异常处理 ④ ( 异常接口声明 | 异常接口语法 | 抛出一种类型的异常 | 抛出多种
    文章目录一、异常接口声明1、异常接口引入2、异常接口语法3、抛出一种类型的异常4、抛出多种类型的异常5、抛出任何类型异常-不声明异常接口/声明throw(...)6、不能抛出任何类型异常-声明throw()7、抛出异常类型错误博客总结://1.不会抛出异常voidfun()throw();......
  • Eolink Apikit「 零代码」快速发起 RPC 接口自动化测试
    RPC(RemoteProcedureCall)远程过程调用,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC的核心思想是将远程服务抽象成一个接口,客户端通过调用这个接口,就可以实现对远程服务的访问。EolinkApikit支持多协议,RPC、DUBBO、HTTP、REST、Websocket......
  • fastapi-cdn-host发布了 -- FastAPI接口文档/docs页面空白的问题,现在很好解决了~
    代码地址:https://github.com/waketzheng/fastapi-cdn-host如何安装:pipinstallfastapi-cdn-host使用方法:fromfastapiimportFastAPIfromfastapi_cdn_hostimportmonkey_patch_for_docs_uiapp=FastAPI()monkey_patch_for_docs_ui(app)#增加这行就能解决/docs页面空......
  • 快速掌握 Websocket 接口测试|Eolink Apikit
    什么是websocket?WebSocket是HTML5下一种新的协议(websocket协议本质上是一个基于tcp的协议)。它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯的目的Websocket是一个持久化的协议。websocket的原理websocket约定了一个通信的规范,通过......
  • Springboot项目通过redis实现接口的幂等性
    在SpringBoot项目中,通过Redis实现接口的幂等性通常是通过在Redis中存储唯一标识符(token、UUID等)的方式来实现。当接口第一次被调用时,生成并存储一个唯一标识符到Redis,然后将该标识符返回给客户端。客户端在后续的请求中携带该标识符,服务端在处理请求之前检查Redis中是否存在该标识......
  • 关于C#接口的用法详细解答,附上案例说明!
    接口C#中的接口是一种定义了一组方法、属性和事件的类型。它只包含成员的声明,而不包含任何实现。接口可以被类通过实现的方式使用,从而使类能够具有接口定义的行为。接口在C#中被定义为使用interface关键字,接口的成员默认是公共的。类通过使用implements关键字实现接口,并提供接口......
  • 接口类型
    接口1.接口继承(extends)如果两个接口之间有相同的属性和方法,可以将公共的属性和方法抽离出来,通过继承来复用interfacePoint1D{x:number;}interfacePoint2DextendsPoint1D{y:number;}interfacePoint3DextendsPoint2D,Point1D{z:number;}letpoint3d:......