当前位置: 首页 > 编程笔记 >

Go语言接口用法实例

邓丰
2023-03-14
本文向大家介绍Go语言接口用法实例,包括了Go语言接口用法实例的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了Go语言接口用法。分享给大家供大家参考。具体分析如下:

接口类型是由一组方法定义的集合。
接口类型的值可以存放实现这些方法的任何值。

package main

import (

    "fmt"

    "math"

)

type Abser interface {

    Abs() float64

}

func main() {

    var a Abser

    f := MyFloat(-math.Sqrt2)

    v := Vertex{3, 4}

    a = f  // a MyFloat implements Abser

    a = &v // a *Vertex implements Abser

    a = v  // a Vertex, does NOT

           // implement Abser

    fmt.Println(a.Abs())

}

type MyFloat float64

func (f MyFloat) Abs() float64 {

    if f < 0 {

        return float64(-f)

    }

    return float64(f)

}

type Vertex struct {

    X, Y float64

}

func (v *Vertex) Abs() float64 {

    return math.Sqrt(v.X*v.X + v.Y*v.Y)

}

希望本文所述对大家的Go语言程序设计有所帮助。

 类似资料:
  • Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口。 实例 /* 定义接口 */ type interface_name interface { method_name1 [return_type] method_name2 [return_type] method_name3 [return_type]

  • 主要内容:error 基本用法,自定义错误类型错误处理在每个编程语言中都是一项重要内容,通常开发中遇到的分为异常与错误两种,Go语言中也不例外。本节我们主要来学习一下Go语言中的错误处理。 在C语言中通过返回 -1 或者 NULL 之类的信息来表示错误,但是对于使用者来说,如果不查看相应的 API 说明文档,根本搞不清楚这个返回值究竟代表什么意思,比如返回 0 是成功还是失败? 针对这样的情况,Go语言中引入 error 接口类型作为错误处理

  • 主要内容:接口被实现的条件一:接口的方法与实现接口的类型方法格式一致,接口被实现的条件二:接口中所有方法均被实现如果一个任意类型 T 的方法集为一个接口类型的方法集的超集,则我们说类型 T 实现了此接口类型。T 可以是一个非接口类型,也可以是一个接口类型。 实现关系在Go语言中是隐式的。两个类型之间的实现关系不需要在代码中显式地表示出来。Go语言中没有类似于 implements 的关键字。 Go编译器将自动在需要的时候检查两个类型之间的实现关系。 接口定义后,需要实现接口,调用方才能正确编译通

  • 主要内容:将值保存到空接口,从空接口获取值,空接口的值比较空接口是接口类型的特殊形式,空接口没有任何方法,因此任何类型都无须实现空接口。从实现的角度看,任何值都满足这个接口的需求。因此空接口类型可以保存任何值,也可以从空接口中取出原值。 提示 空接口类型类似于 C# 或 Java 语言中的 Object、C语言中的 void*、 C++ 中的 std::any。在泛型和模板出现前,空接口是一种非常灵活的数据抽象保存和使用的方法。 空接口的内部实现保存了对

  • 本文向大家介绍Go语言排序与接口实例分析,包括了Go语言排序与接口实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Go语言排序与接口用法。分享给大家供大家参考。具体如下: 希望本文所述对大家的Go语言程序设计有所帮助。

  • 主要内容:结构体实现接口,函数体实现接口,HTTP包中的例子函数和其他类型一样都属于“一等公民”,其他类型能够实现接口,函数也可以,本节将对结构体与函数实现接口的过程进行对比。 首先给出本节完整的代码: 有如下一个接口: 这个接口需要实现 Call() 方法,调用时会传入一个 interface{} 类型的变量,这种类型的变量表示任意类型的值。 接下来,使用结构体进行接口实现。 结构体实现接口 结构体实现 Invoker 接口的代码如下: 代码说明如下: