⑨ 接口

本文即将看到:
⚬ ------ 接口的使用
⚬ ------ 接口类型和断言
⚬ ------ Type关键字

一、接口的使用

1.概念

面向对象世界中的接口的一般定义是“接口定义对象的行为”。它表示让指定对象应该做什么。实现这种行为的方法(实现细节)是针对对象的。

在Go中,接口是一组方法签名。当类型为接口中的所有方法提供定义时,它被称为实现接口。它与OOP非常相似。接口指定了类型应该具有的方法,类型决定了如何实现这些方法

Go语言中,接口和类型的实现关系,是非侵入式

2.定义接口

type name interface{
  name    type
  name2   type
  ...
} //定义接口

type struct_name struct{
  // variables
} //定义结构体

func (struct_name_variables 结构体名字) 方法名() [返回type]{
  //方法实现
}

二、接口类型和断言

1.接口类型

多态

通过接口实现多态

空接口

不包含任何的方法,正因如此,所有的类型都实现了空接口,因此空接口可以存储任意类型的数值

package main

import "fmt"

func main() {
  var a1 A = Cat{"花猫"}
  var a2 A=Person{"王二狗",30}
  fmt.Println(a1)
  fmt.Println(a2)
}

type A interface {
} //空接口

type Cat struct {
  color string
}
type Person struct {
  name string
  age  int
}

接口嵌套

package main

import "fmt"

func main() {
  var cat Cat = Cat{}
  cat.test()
  cat.test2()
  cat.test3()
}

type A interface {
  test()
}

type B interface {
  test2()
}

type C interface {
  A
  B
  test3()
}

type Cat struct {
}

func (c Cat) test() {
  fmt.Println("test()....")
}
func (c Cat) test2() {
  fmt.Println("test2()...")
}
func (c Cat) test3() {
  fmt.Println("test3()...")
}

2.接口断言

三、Type关键字

1.定义

​ type是go语法里的重要而且常用的关键字,type绝不只是对应于C/C++中的typedef。搞清楚type的使用,就容易理解go语言中的核心概念struct、interface、函数等的使用。

2.类型定义

结构体

接口

定义函数

类型别名

type count=int // count == int
posted @   Gonfei  阅读(121)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示