返回顶部
首页 > 资讯 > 精选 >Go语言中的接口怎么使用
  • 871
分享到

Go语言中的接口怎么使用

2023-07-04 17:07:38 871人浏览 薄情痞子
摘要

今天小编给大家分享一下Go语言中的接口怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。接口在 Go 语言中,接口是一种

今天小编给大家分享一下Go语言中的接口怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    接口

    Go 语言中,接口是一种抽象的类型,是一组方法的集合。接口存在的目的是定义规范,而规范的细节由其他对象去实现。我们来看一个例子:

    import "fmt"type Person struct {    Name string}func main() {    person := Person{Name: "cmy"}    fmt.Println(person) // {cmy}}

    上述代码定义了结构体 Personmain 函数创建了此结构体的变量 person,然后通过 fmt 包里的 Println 函数打印这个结构体,打印结果为 {cmy}。在此基础上,我们改造一下代码:

    import "fmt"type Person struct {    Name string}func (p Person) String() string {    return fmt.Sprintf("name: %s", p.Name)}func main() {    person := Person{Name: "cmy"}    fmt.Println(person) // name: cmy}

    新改造的代码里为结构体 Person 添加一个结构体方法 String() string,方法的返回结果是对 name 进行格式化,我们再打印一下结构体,观察结果发现是 String() 方法返回的值,而不是 {cmy}。 为什么是这样呢?这是因为 fmt.Println(T) 函数的实现细节里,会对结构体进行判断,如果结构体实现了 Stringer 接口,则会直接打印 String() 方法的返回值。以下是 Stringer 接口的代码:

    type Stringer interface {    String() string}

    结构体实现了这个接口,也就意味着遵守这个接口所定义的规范,fmt.Println(T) 函数发现结构体有这个规范,因此就会根据规范来打印信息。基于 Stringer 接口,我们来看看接口的语法格式:

    type XXX interface {    // methods}

    type

    接口的声明,必须以 type 关键字开头。

    接口名

    推荐驼峰式命名法,首字母大写的方法名可以在包外访问,小写的只能在包内访问。

    interface

    接口的标识。

    接口体

    大括号里面声明规范,也就是声明方法,方法必须具有名字。

    接口的实现

    Go 语言里,接口的实现不是基于接口,而是基于方法。如果一个自定义类型拥有了某个接口的所有方法,那么这个自定义类型就实现这个接口。接口的实现在上述的例子中有所体现,Person 结构体定义了 String() string 方法,拥有了 Stringer 接口的所有方法,因此实现了 Stringer 接口。

    一个自定义类型可以实现多个接口

    type A interface {        a()}type B interface {        b()}type Person struct {        Name string}func (p Person) a() {}func (p Person) b() {}

    A 接口声明了 a 方法, B 接口声明了 b 方法,Person 结构体定义了 ab 两个方法,因此 Person 结构体实现了 AB 两个接口。

    接口类型变量

    一旦接口被定义,它就可以用于声明变量。

    import "fmt"type A interface {}func main() {    var a A    fmt.Println(a) // <nil>}

    如果只声明接口变量,不初始化,变量的值默认为 nil,因为接口类型实际上是一个指针。若为接口赋初值,需要选择一个合法的值,即被赋值的基类必须实现这个接口。

    空接口

    Go 语言里面可以认为所有类型实现了空接口,因为空接口没有任何的方法。

    import "fmt"type EmptyInterface interface {}func main() {    var a EmptyInterface = 1    var b EmptyInterface = true    var c EmptyInterface = "hello"    var d EmptyInterface = 3.14    var e EmptyInterface = 'c'    fmt.Println(a, b, c, d, e) // 1 true hello 3.14 99}

    所有类型都实现空接口,因此空接口变量可以被赋初值为任意类型的值或变量。

    类型断言

    Go 语言支持类型断言操作,通过这个操作,可以还原接口变量的右值(被赋的初值)。类型断言的语法形式通常为:

    v, ok := a.(T)

    如果断言成功,那么 v 的值为接口变量的值,ok 的值为 true;如果断言失败,v 的值为 T 类型的零值,ok 的值为 false

    类型断言变种 type switch

    通过 type switch 的方式,可以判断接口变量属于哪种动态类型。

    import "fmt"type EmptyInterface interface {}func main() {    var a EmptyInterface = 1    switch a.(type) {    case string:fmt.Println("a 的右值类型为 string")    case int:fmt.Println("a 的右值类型为 int")    case bool:fmt.Println("a 的右值类型为 bool")    case float64:fmt.Println("a 的右值类型为 float64")    }}

    以上就是“Go语言中的接口怎么使用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网精选频道。

    --结束END--

    本文标题: Go语言中的接口怎么使用

    本文链接: https://lsjlt.com/news/346643.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • Go语言中的接口怎么使用
      今天小编给大家分享一下Go语言中的接口怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。接口在 Go 语言中,接口是一种...
      99+
      2023-07-04
    • GO语言中接口和接口型函数的具体使用
      目录前言GO语言中的接口怎么用?使用函数类型实现接口有何好处?GO源码例子前言 今天在编码中,看到了一个非常经典的接口用法如下,于是查阅了相关资料,发现此种写法为接口型函数,本文对此...
      99+
      2023-03-09
      GO语言接口 GO语言接口型函数
    • 不同语言中接口与Go语言接口的差异
      不同语言中接口与 Go 语言接口的差异 什么是接口? 接口是一种抽象概念,定义了一组方法或行为,而不需要定义这些方法的具体实现。接口允许程序员定义一组通用的规则或契约,而不管底层实现如...
      99+
      2024-04-12
      接口 go语言 python c#
    • GO语言中接口和接口型函数如何使用
      这篇文章主要讲解了“GO语言中接口和接口型函数如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“GO语言中接口和接口型函数如何使用”吧!// A Getter&nbs...
      99+
      2023-07-05
    • Go语言中io包核心接口怎么用
      小编给大家分享一下Go语言中io包核心接口怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Readerio.Reader接口定义了 Read 方法,用于读取数...
      99+
      2023-06-22
    • Go语言接口的嵌套如何使用
      这篇文章主要讲解了“Go语言接口的嵌套如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go语言接口的嵌套如何使用”吧!在Go语言中,不仅结构体与结构体之间可以嵌套,接口与接口间也可以通...
      99+
      2023-07-06
    • Go语言中如何使用NumPy和Git接口?
      Go语言是一种高效、简洁、安全的编程语言,它在开发Web应用、云计算、网络通信等方面有着广泛的应用。而NumPy和Git则是两个非常流行的工具,分别用于科学计算和版本控制。本文将介绍如何在Go语言中使用NumPy和Git接口,以便更好地进行...
      99+
      2023-07-01
      numy git 接口
    • 接口在Go语言中有什么作用?
      Go语言是一门现代化、高效的编程语言,它在很多领域都有着广泛的应用。其中,接口是Go语言中的一个重要概念,它可以让我们更加灵活地编写代码。本文将探讨接口在Go语言中的作用,并通过实例演示来说明它的应用。 一、什么是接口? 在面向对象编程中,...
      99+
      2023-08-05
      对象 接口 数据类型
    • Go语言的接口有什么作用
      本篇内容主要讲解“Go语言的接口有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Go语言的接口有什么作用”吧!Go语言-接口在Go语言中,一个接口类型总...
      99+
      2024-04-02
    • Go语言接口的嵌套的具体使用
      目录系统包中的接口嵌套组合在代码中使用接口嵌套组合在Go语言中,不仅结构体与结构体之间可以嵌套,接口与接口间也可以通过嵌套创造出新的接口。 一个接口可以包含一个或多个其他的接口,这相...
      99+
      2023-05-16
      Go语言接口嵌套 Go 接口嵌套组合
    • 一文带你了解Go语言中接口的使用
      目录接口接口的实现接口类型变量空接口类型断言类型断言变种 type switch小结接口 在 Go 语言中,接口是一种抽象的类型,是一组方法的集合。接口存在的目的是定义规范,而规范的...
      99+
      2022-12-08
      Go语言接口使用 Go语言接口 Go 接口
    • 如何在Django中使用GO语言编写的接口?
      Django 是一个优秀的 Python Web 框架,它提供了丰富的功能和强大的扩展性,使得我们可以方便地构建高性能、高效、安全的 Web 应用程序。然而,随着互联网技术的发展,越来越多的 Web 应用程序需要与其他语言编写的服务进行交互...
      99+
      2023-10-26
      ide django 接口
    • Go语言的接口详解
      目录1、接口的用途2、类型断言3、类型选择4、空接口5、匿名空接口6、实现多个接口7、接口嵌套8、接口零值9、make和new的区别总结接口就是一系列方法的集合(规范行为) 在面向对...
      99+
      2024-04-02
    • Go语言接口的用法详解
      一、接口的定义和好处 我们都知道接口给类提供了一种多态的机制,什么是多态,多态就是系统根据类型的具体实现完成不同的行为。 以下代码简单说明了接口的作用 package main i...
      99+
      2024-04-02
    • Go语言接口类型怎么定义
      今天小编给大家分享一下Go语言接口类型怎么定义的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。接口接口是用来定义行为的类型,定...
      99+
      2023-07-05
    • 深入探讨Go语言中的接口
      Go语言是一种静态类型的编程语言,拥有一套强大的类型系统。在Go语言中,接口(interface)是一个非常重要的概念,它在实现代码的解耦、提升代码的可复用性等方面起着至关重要的作用。...
      99+
      2024-02-25
      go语言 详解
    • go语言接口是干什么
      go语言接口提供了一种灵活的方式来定义对象的行为,并且可以在不关心具体实现的情况下使用这些对象。通常用于:1、抽象数据类型,可以定义一个抽象的数据类型,该类型可以由不同的具体类型实现;2、依赖注入,可以将一个对象的实现与其使用分离;3、测试...
      99+
      2023-12-11
      go语言
    • Go语言中如何使用接口来管理容器?
      在Go语言中,使用接口来管理容器是非常常见的。接口是一种抽象类型,它定义了一组方法签名,但是没有实现这些方法。这使得我们可以定义一个通用的接口,然后在不同的容器类型中实现这些方法,从而使得我们的代码更加模块化和可重用。 在本文中,我们将学...
      99+
      2023-09-29
      接口 容器 函数
    • 大数据处理中,如何使用 GO 语言接口?
      随着大数据时代的到来,对于数据的处理越来越需要高效、快速的方法来实现。而在这个领域中,GO 语言作为一门高效、快速的编程语言,被越来越多的人所使用。GO 语言提供了一些强大的接口来帮助我们处理大数据,接下来我们将重点讲解如何使用 GO 语言...
      99+
      2023-09-17
      大数据 接口 关键字
    • 如何在GO语言中使用接口进行编程?
      在GO语言中,接口是一种非常重要的编程概念。接口可以被看作是一组方法的集合,这些方法是对某个对象或类型的行为进行描述的。通过使用接口,我们可以将不同的类型进行抽象,从而更加灵活地进行编程。接下来,本文将介绍如何在GO语言中使用接口进行编程...
      99+
      2023-07-27
      编程算法 接口 框架
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作